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

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
번호 제목 글쓴이 날짜 조회 수sort
5728 [완료]파일 종류에 대해.. [2] 이세종 2007-11-19 510
5727 BT1 데이터시트 있으신분 계신가요? [3] 현쓰 2010-01-22 510
5726 커널에서 대용량 버퍼할당... [1] 안드러오니 2010-05-21 510
5725 툴체인의 버전이 다르다면 컴파일이 되어도 동일하게 수행되지 않을 ... [2] sonbong 2011-01-07 510
5724 dump Stack 에서 함수이름이 와우옹 2011-04-29 510
5723 [비트 연산자] [2] 꺼북이 2011-05-22 510
5722 여기 설치하는 패키지들 설명해주실수있나요?ㅠㅠ [1] 해리포팅 2011-06-23 510
5721 오드로이드에 실장된 HDMI 포트의 filter의 part number 알려 주... [1] 김성한 2010-03-13 511
5720 glibc 소스 중 System Call 하는 부분 좀 알려주세요 박윤상 2010-07-07 511
5719 s3c2440계열을 이용한 임베디드보드를 사용하고 있는데, 궁금한점이 있... [1] 와정 2010-07-24 511
5718 오드로이드 t에서 x window 부팅 관련 문의 [1] 이희승 2010-09-18 511
5717 S5PC110의 C, D타입의 차이점이 뭔가요? [1] 새로운희망 2010-09-28 511
5716 WinCE 6.0 porting 중 문의 [1] 송의석 2010-10-07 511
5715 repo sync 해서 소스를 받았는데 여기서 컴파일러가 있는 디렉토리... [1] 시안 2011-05-24 511
5714 NXP4330 MIPI LCD해상도 문의 [4] 수위타자 2021-02-10 511
5713 PCI controller와 mac이 내장된 SOC 칩이 어떤것이 있나요? [4] 시안 2010-04-09 512
5712 eclair에서 Calendar 동작 안됨... [2] 정낙주 2010-05-03 512
5711 Android eclair2.1 3D Issue 문의 [2] 진돌이 2010-06-02 512
5710 터치패널 범위 설정하는거 어떻게 하나요? [1] 현쓰 2010-07-03 512
5709 개발 환경 질문 입니다. file [1] 옐로우맨 2011-04-26 512

사용자 로그인