모듈 소스코드를 컴파일하는데 warnings난 것을 에러로 처리되서 진행이 안되네요..
글쓴이: jungjury / 작성시간: 목, 2014/11/06 - 11:54오전
구조체를 하나 선언해주고
struct GpioRegisters { uint32_t PD_CFG[4]; uint32_t PD_DAT; }; struct GpioRegisters *pGpioRegisters;
아래와 같이 주소값을 지정해주는데...
pGpioRegisters = (struct GpioRegisters *)__io_address(0x01C2086C);
아래와 같은 에러가 납니다. 다른 보드의 같은 버전대(3.4.xx) 커널로 바꿔보면 에러가 안나던데..
컴파일러는 동일한걸 사용하는데 이상합니다..
/home/webnautes/tmp/ledblink.c: In function ‘LedBlinkModule_init’:
/home/webnautes/tmp/ledblink.c:71:27: error: implicit declaration of function ‘__io_address’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[2]: *** [/home/webnautes/tmp/ledblink.o] 오류 1
make[1]: *** [_module_/home/webnautes/tmp] 오류 2
make[1]: Leaving directory `/home/webnautes/kernel-source'
make: *** [default] 오류 2
Forums:
컴파일 옵션에 -Werror 가 있어서 그런거 같은데여
저 옵션을 제거 하거나
아니면
소스에
‘__io_address
이 함수 원형이 있는 헤더 파일을 추가하면 될거 같긴한데
저건 컴파일러하고는 상관업이 소스 자체의 문제 같습니다
즐린
감사합니다..
말씀하신 옵션을 찾아서 제거해보니...
문제가 되었던 커널소스에는 해당 함수가 선언이 안되어 있어 문제가 발생한게 맞네요...
동작했던 커널 소스에는 아래 처럼 선언이 되어 있고..
:#define __io_address(n) IOMEM(IO_ADDRESS(n))
깜빡하고 로그인안하고 답글달았네요..
^^;
안녕하세요 : )
댓글 달기