본문 바로가기

PROJECT/ex347_project

5/11


위의 사이트의 방버버 대로 spi가 제대로 동작하는지 확인해 봤다.

그러기위해서 우선 위의 사이트에서 

4.configure and compile the kernel for your hardware 
에 있는 config_mini2440_t35_gpio_spi.zip 파일을 받았다.
압축을 풀면 config_mini2440_t35_gpio_spi 파일이 나오고
그 파일과 원래 리눅스 소스코으 최 상단에 있는 config_mini2440_t35 파일과
# diff config_mini2440_t35 config_mini2440_t35_gpio_spi > diff_config_t35
명령으로 두 config_mini2440_t35와 config_mini2440_t35_gpio_spi 파일의 차이를 diff_config_t35 파일에 저장시킨다.
그 내용을 토대로 config_mini2440_x35 파일을 열어서 반영시켰다.(config_mini2440_t35_gpio_spi 파일에 적용시킨것들을 포함시킴)

그리고 User Applications 의 SPI 에 있는 spidev_test.zip 파일을 받았다.
(압축을 풀면 spidev_test 파일이 나옴)

위에서 만든 config_mini2440_x35 파일로 make 해서 나온 zImage를 보드에 올리고,
spidev_test를 실행 해보고자 한다.

실행 결과.. /dev/spi~~~  이런 녀석이 생기지 않음!!!  ㅠ

지금 다시 글을 살펴본 결과

3.Edit the board initialization routines for your hardware
에 있는 mach-mini2440.c 파일을 받지 않아서 라고 생각됨.

그래서 이 녀석을 받은 다음에
linux/arch/arm/mach-s3c2440/mach-mini2440.c 에 덮어 씌워야 한다..

우린 우선 덮어씌우기전에 무슨 내용이 달라졌는지 확인해보도록 하자.

더 들어간 내용은.....

spi driver info 만들어 주고,
spi_board_info 구조체를 선언해주고,
mini2440_spi0_cs 함수를 만들어주고,
s3c2410_spi_info 구조체에 위의 함수 넣어줌.

spi0 pis 을 명시해줬다.
mini2440_machine_init (초기화부분)에서 명시해줌.

mach-mini2440.c 파일의 내용에 spi에대해서 들어가기때문에 /dev/spidev 가 생성될 것이라고 생각했으나...
생각과는 다르게 생기지 않았다...
어떻게 해야 하는 것인가....ㅠ

linux/arch/arm/mach-s3c2440/mach-mini2440.c 이 파일은 board init 파일이다.
이 파일의 끝부분에보면 static void __init mini2440_machine_init(void){} 함수가 있다.
딱 이름만 봐도 mini2440 보드를 시작하는 곳이라고 딱 감이 온다!!