커널에서 메로리 할당하는방법에 대하여..

oversky72의 이미지

안녕하세요.. 임베디드 시스템을 개발하고 있읍니다.

커널에서 디바이스 드라이버를 만들고잇는데 큰메모리를 필요료 합니다.

unsigned char Image;
Image = (unsigned char *);
kmalloc(640*480, GFP_KERNEL);

kfree(Image);

이렇게 하면 메모리에서 충돌이 일어나면서 커널이 뻣어 버리던데..
다른방법이나 틀린곳이 잇으면 지적좀 부탁드리겟읍니다.

charsyam의 이미지

//안녕하세요.. 임베디드 시스템을 개발하고 있읍니다.
//
//커널에서 디바이스 드라이버를 만들고잇는데 큰메모리를 필요료 합니다.
//
//unsigned char Image;
//Image = (unsigned char *);
//kmalloc(640*480, GFP_KERNEL);
//
//kfree(Image);
//
//이렇게 하면 메모리에서 충돌이 일어나면서 커널이 뻣어 버리던데..
//다른방법이나 틀린곳이 잇으면 지적좀 부탁드리겟읍니다.

뭔가 이상하네요.
unsigned char *Image;
Image = kmalloc( 640*480, GFP_KERNEL );
kfree( Image );

가 되야 될것 같네요. 그럼 고운 하루되시길...

=========================
CharSyam ^^ --- 고운 하루
=========================

oversky72의 이미지

커널에서 kmalloc은 사이즈의 제한이 있다고 하네요..
PAGE_SIZE * 32라고 하네요.
다른방법은 없을까요??

kyong의 이미지

oversky72 wrote:
커널에서 kmalloc은 사이즈의 제한이 있다고 하네요..
PAGE_SIZE * 32라고 하네요.
다른방법은 없을까요??

__get_free_pages() :idea: