메모리 할당 관련 질문입니다.(커널,임베디드)

lovejin0309의 이미지

안녕하세요.

아날로그 디바이스사의 BF533-EZKIT상에서 개발을 하고 있습니다.

현재 사용하는 배포판은 uClinux입니다.

비디오 인코더 디바이스 드라이버를 개발하고 있습니다.

다음과 같은 형태로 SDRAM을 쪼개서 사용할 계획입니다.

---------------------
비디오 버퍼1
---------------------
비디오 버퍼2
---------------------
비디오 버퍼3
---------------------

사용자 영역

---------------------
커널 & 파일 시스템
---------------------

이렇게 사용하려고 합니다. 이럴때, 비디오 버퍼 영역은 kmalloc이나 malloc를 사용하지 않고
물리적 주소를 사용하려고 합니다. 이럴 땐 어떤 식으로 메모리 할당을 해주어야 커널에게
이 영역은 침범해선 안된다고 알려 줄 수 있을까요?

익명 사용자의 이미지

mmap.. 사용하세요

익명 사용자의 이미지

kernel API 중에 부팅시 대규모 메모리를 할당하는 API 가 있습니다. 기억이 안나서 낭패긴 하지만...

오호라의 이미지

http://kelp.or.kr/korweblog/ 쪽에서 물어보심이 더 좋지 않을까요?~

Hello World.

pastime의 이미지

Anonymous wrote:
kernel API 중에 부팅시 대규모 메모리를 할당하는 API 가 있습니다. 기억이 안나서 낭패긴 하지만...

alloc_bootmem() 말씀이신가요?

iimec2의 이미지

alloc_bootmem() 이함수는 대규모의 allocate를 하지 않습니다.
4k이내(4k아래)의 메모리 할당이 이루어집니다.