volatile : compiler한테 최적화 하지마라는 뜻
보통 register 앞에 volatile을 많이 붙임
GPO_TypeDef라는 하나의 자료형을 정의
GPO_TypeDef자료형은 unsigned 32bit짜리 MODER와 unsigned 32bit짜리 ODR을 가지는 자료형(총 8 byte)
LED_init이라는 함수는 매개변수로 GPO_TypeDef라는 자료형을 받음
매개변수는 주소값을 받을 것임(GPOx라는 주소)
GPO_TypeDef *GPOx 의미 : GPOx(주소)가 가리키는 곳의 자료형은 GPO_TypeDef형임
이 함수를 호출하면 GPOx가 가리키는 곳에 저장된 GPO_TypeDef형으로 선언된 값을 찾아감
그 값은 GPO_TypeDef형이므로 MODER와 ODR변수를 가지는데 여기서 MODER변수에 0xFF를 넣겠다는 뜻
GPOA_BASEADDR은 그냥 숫자임
그런데 *을 해줌으로써 GPOA_BASEADDR은 주소가 되었고
그 주소가 가리키는 값은 GPO_TypeDef 자료형임
따라서 GPOA는 LED_init함수의 매개변수와 자료형태가 같으므로 위 그림과 같이 괄호안에 사용이 가능해짐
각종 코드의 의미
temp & (1<<0)
temp의 lsb가 1인지 확인
temp & (1<<1)
temp의 하위 두 번째 비트가 1인지 확인
'개념 이것저것' 카테고리의 다른 글
설계 목적에 따른 추상화 (0) | 2025.04.06 |
---|