개념 이것저것

C언어 구조체, 포인터

_KDE_ 2025. 4. 21. 20:36

 

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