2017. 9. 30. 22:00 devel/개념
주소가 aligned 인지 확인하는 방법
예를 들면 512B로 aligned 인지 확인
int check_if_aligned(unsigned long addr)
{
const unsigned long align_size = 512;
return (addr & (align_size - 1)) ? -1 : 0; //0: aligned, -1: not aligned
}
512보다 작은 크기의 bit가 단 하나라도 & 연산으로 걸리는게 있으면 aligned가 아님
무조건 512의 배수만 &연산이 false뜸
잘 이해가 안 가면 계산기 놓고 해보면 아하~!
'devel > 개념' 카테고리의 다른 글
아마존 리눅스 서버 최적화 튜닝 (0) | 2017.11.15 |
---|---|
주소가 주어진 영역 이내인지 확인 하는 방법 (0) | 2017.10.01 |
STMF4 시리즈 부트로더, iap 개발 팁 (1) | 2017.04.03 |
Linux Kernel DMA (0) | 2017.03.02 |
Linux Input Event Driver (0) | 2017.02.23 |