기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

Host : ubuntu 10.04 LTS
U-boot
Kernel 2.6.35.7
Android 2.3.3
S5PV210을 사용하고 있습니다.


주기적으로 함수를 실행시키고 망고보드에서 동작 시간을 측정하기 위해서 타이머를 사용하려고 하는데
ndk-build를 이용해서 실행파일을 만들려고 하니 에러가 나네요

현재 문제점 : ndk-build시 다음과 같은 에러가 나옵니다.
undefined reference to `sigset' collect2: ld returned 1 exit status

sigset(SIGALRM, my_timer_callback);//에러가 나는 부분
위와 같이 에러가 나는 부분을 주석처리 하고 하면 컴파일이 잘 되고 실행도 잘 됩니다.

헤더파일은 ndk폴더에 c library들을 살펴보니 다 참조가 되어 있는것 같고...
타이머 소스의 sigset부분이 에러가 나는데 도통 이 에러가 왜 나는지 해결방안이 어떤것인지 모르겠네요
혹시 해결 방법을 아시는 분은 답글 부탁드립니다.

기타 질문 : 진행하면서 궁금했던 점이나 검색 능력 부족으로 구글님의 해결을 얻지 못한 의문점

1.ndk-build가 아닌 arm-2009q3 툴체인으로 컴파일한 바이너리 파일을 진저브레드가 올려진 망고보드에 실행시
아래와 같이 되는데 왜 이런 현상이 나오는 것인가요? 
ndk-build나 gcc 크로스 컴파일러나 동일한 컴파일러를 사용하는것이 아닌가요?
# ./test
/bin/sh: ./test: not found

2. adc 디바이스 드라이버는 삼성커널에서 제공하는 것을 사용하고 있습니다.
adc값을 읽는 것은 성공했으나 조금 이상한 점을 발견했습니다.
터치 스크린을 연결했을 경우와 연결하지 않고 측정할때 값이 다릅니다.
연결된 경우 => 정상적으로 값이 읽어짐
연결하지 않은 경우 => 제대로 된 값이 읽히지 않고 일정한 쓰레기값(?)이 나옴 
100번 읽어서 평균을 내보면 항상 값이 +- 50 오차율.. 사인파를 넣든 dc를 넣든...
이런 현상이 나오는 이유는 도대체 무엇일까요...ㅡ.ㅡ?


Android.mk
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := timer
LOCAL_SRC_FILES := timer.c

include $(BUILD_EXECUTABLE)
컴파일 하려는 간단한 타이머 파일의 소스입니다.
#include <signal.h>
#include <stdio.h>
#include <sys/time.h>
void my_timer_callback( unsigned long data )
{
printf( "my_timer_callback called .\n" );
}
int main()
{
struct itimerval time_val;

sigset(SIGALRM, my_timer_callback);//에러가 나는 부분
time_val.it_interval.tv_sec = 1;
time_val.it_interval.tv_usec = 0;
time_val.it_value.tv_sec = 1;
time_val.it_value.tv_usec = 0;

if(setitimer(ITIMER_REAL, &time_val, NULL) == -1)
{
perror("Failed to set virtual timer!\n");
exit(1);
}

if(getitimer(ITIMER_REAL, &time_val) == -1)
{
perror("Faild to get virtual timer B!!!!\n");
exit(1);
}

while(1)
{
printf("it_value.sec = %d\ it_value.usec = %d\n", (int)time_val.it_value.tv_sec,
(int)time_val.it_value.tv_usec);
 sleep(1);
}
return 0;
}


bradkim

2012.06.01 00:32:32
*.139.137.131

sigset을 지원을 안하네요 ndk에서는

지원하는 API 사용해서 해결했습니당..

새삶

2012.06.01 18:38:32
*.192.178.206

기타질문 1번은 혹시 -static 옵션 주고 컴파일 하셨나요.?

보드 사용한지 좀 되어서 정확하지 않아서 답변 안달았는데 답변이 없어 아는 내용만 올립니다.

그냥 amr_linux_gcc -o test test.c 이런식으로 하면 위에 같은 메시지가 나왔고 옵션을 줘야 했는데 -static이었는지는 정확하지 않네요..

bradkim

2012.06.01 23:21:53
*.139.137.131

답글 감사합니다 ^^ 새삶님 말씀대로 static 옵션을 주니 정상 작동하네요!

arm-none-linux-gnueabi-gcc -static -o hello hello.c 

List of Articles
번호 제목 글쓴이 날짜 조회 수
5388 ramdisk 영역에 bad가 생겨서 부팅이 안되니다 [3] 문철민 2012-06-11 1316
5387 ubuntu 넷북에 설치시 문제.. 훌러덩 2012-06-11 751
5386 HiDis touch driver [3] *김종원 2012-06-09 1263
5385 오드로이드7 회로도(pdf) 부탁드립니다. [6] 황원일 2012-06-09 1333
5384 안드로이드 권한에 대해 질문좀드릴게요 ..^^ [2] daem0n 2012-06-09 1275
5383 와~~ 드디어 파일시스템까지 어떻게든 맹글어서 성공 그런데 ㅠㅠ; ... [1] 혜민아빠 2012-06-08 1063
5382 리눅스 응용프로그램 자동 실행 [3] jclab 2012-06-08 1519
5381 ramdisk 이미지를 mkfs.jffs2명령어를 통해 jffs2포맷의 파일을 만들잖아... [1] 혜민아빠 2012-06-08 1585
5380 tvp5150AM 와 RTD2523을 연결 하여 사용하려 합니다. file [5] 와닝 2012-06-06 1639
5379 리눅스 응용 프로그램에서 EBI(External Bus Interface) 제어 문... [1] 황순일 2012-06-05 1760
5378 6410보드 에서 cam 영상 저장하는 소스 컴파일 에러 관련 문의 [3] 53% 2012-06-05 1644
5377 미국 T-Mobile, AT&T 주파수 밴드 문의 드립니다. 플로이드 2012-06-04 949
5376 카메라 해상도 추가하기(진저브레드) 배기 2012-06-01 981
5375 오드로이드t 회로 전원 질문 [4] trumpetYK 2012-06-01 1369
5374 외부 uart 관련 질문 [1] 문철민 2012-05-31 1482
» 리눅스 타이머 소스 ndk-build시 에러 질문 및 기타 질문 [3] bradkim 2012-05-30 1745
5372 안드로이드 보드 구매 여쭙니다. [1] 스페이스 2012-05-30 1913
5371 [문의] 태블릿에서 화상 통화 시 Echo Cancellation 관련 [2] THESEA 2012-05-30 1720
5370 6410보드에 tvp5150am를 사용하려 합니다. sync lock 가 않됩니다. 와닝 2012-05-29 968
5369 WIFI + BT 모듈 구하기 쉬운걸로 추천 좀 해 주세요~ [4] 현쓰 2012-05-26 1875

사용자 로그인