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

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 S3C6410 Test Firmware 사용법 [1] jclab 2012-05-01 1759
5727 ActiveSync/USB host 동작 관련 [5] 백상은 2007-12-09 1759
5726 ICS S4210 (type password to decrypt storage?) 문제... file [4] 아명 2012-03-14 1759
5725 V4L2 device driver의 node ? [1] 테크 2012-04-18 1756
5724 V210에서 usb메모리 마운트 방법에 대한 질문 입니다. [2] Ike 2012-02-22 1755
5723 ramdisk 제작시 커널의 MTD파티션은 어떻게 해야 하나요? [2] 혜민아빠 2012-03-27 1755
5722 v4l2 는 camera register 관련된 포트에만 쓰일수 있는건가요? [1] biokk 2014-02-25 1755
5721 [V310] request_irq로 등록을 했지만, isr이 불려지지 않습니다.. ... [3] 훌러덩 2011-12-21 1754
5720 ffmpeg 관련하여 examples 이 컴파일이 되지 않습니다. [1] 사랑해요 2012-07-03 1754
5719 kikat 4.2.2 에서 surfaceflinger 초기화 하는 부분에 대해서 질문 ... [3] 시안 2014-07-08 1754
5718 s3c2440 touch screen 좌표 인식 박용순 2012-01-13 1752
5717 리눅스 질문 : bus 충돌 회피방법 질문 [2] 카보 2013-08-28 1752
5716 Camera ISP Source가 공개된 AP chip 아시는분? [1] 꿈의사람 2014-02-07 1751
5715 busybox 1.14.0 udhcpc 관련 문의드립니다. [7] Tommy 2010-08-18 1750
5714 ARM 멀티코어와 리눅스에서 병렬처리? [4] Supsupi 2014-03-28 1749
5713 vmware 에 설치된 리눅스에서 공유폴더에 파일을 복사하는 방법 [1] blue0sky 2012-09-06 1748
5712 Android.Gingerbread MTD-utils 추가 포팅 문제점. [3] 서유한 2012-03-23 1748
5711 GPIO 설정 [5] 마대렐라 2014-01-24 1748
5710 SDRAM 확장시 에러발생 (64MB -> 128MB) [12] 박진홍 2009-08-15 1746
5709 안녕하세요 사운드 디바이스 관련 질문입니다. [6] 조현호 2013-03-25 1746

사용자 로그인