도와주세요!!
글 수 15,339
2008.05.19 18:20:01 (*.69.180.186)
6665
안녕 하세요. 채영석 입니다.
Flash 메모리를 이용 하려고 합니다. UART 부분은 메뉴얼에 설명이 나와 있어서 바로 사용 할수 있었습니다.
그런데 Flash 메모리 쪽은 설명이 없어 이렇게 설명 드립니다.
전에 Linux 에서 작업을 할때는 MTD 드라이버를 컴파일하여 커널에 포함시킨 뒤
lowfd = open( "/var/mtddev/mtdblock2", O_RDWR | O_NDELAY )
위 같은 방법으로 해당 블럭을 사용한 경험이 있습니다.
제가 현재의 커널옵션을 보니까 장착된 보드의 Flash 드라이버와 MTD 까지 모두 올라가 있는 상태 더군요.
근데 문제는 장치명이 명확하지 않아 이렇게 질문 드려 봅니다.
/dev 폴더를 확인해본 결과 mtd 관련 디바이스가 여러가지라 헷갈립니다.
1. Flash 장치에 접근하려면 /dev 폴더의 어느 장치를 이용해야 합니까..
2. 제가 알기론 장착된 nand flash 를 부트롬으로도 이용하는것 같습니다.
여러 환경설정 및 데이터 백업 용도로 사용자 영역으로 사용해야 합니다.
사용자 저장공간으로 몇개의 여유 블럭이 있는 지도 궁금 합니다.
Flash 메모리를 이용 하려고 합니다. UART 부분은 메뉴얼에 설명이 나와 있어서 바로 사용 할수 있었습니다.
그런데 Flash 메모리 쪽은 설명이 없어 이렇게 설명 드립니다.
전에 Linux 에서 작업을 할때는 MTD 드라이버를 컴파일하여 커널에 포함시킨 뒤
lowfd = open( "/var/mtddev/mtdblock2", O_RDWR | O_NDELAY )
위 같은 방법으로 해당 블럭을 사용한 경험이 있습니다.
제가 현재의 커널옵션을 보니까 장착된 보드의 Flash 드라이버와 MTD 까지 모두 올라가 있는 상태 더군요.
근데 문제는 장치명이 명확하지 않아 이렇게 질문 드려 봅니다.
/dev 폴더를 확인해본 결과 mtd 관련 디바이스가 여러가지라 헷갈립니다.
1. Flash 장치에 접근하려면 /dev 폴더의 어느 장치를 이용해야 합니까..
2. 제가 알기론 장착된 nand flash 를 부트롬으로도 이용하는것 같습니다.
여러 환경설정 및 데이터 백업 용도로 사용자 영역으로 사용해야 합니다.
사용자 저장공간으로 몇개의 여유 블럭이 있는 지도 궁금 합니다.
저희 보드 중 어떤 보드를 사용하시는지는 잘 모르겠지만 일단 저희 보드는 3개의 MTD 블럭을 사용합니다.
Kernel : mtdblock0
Ramdisk : mtdblock1
app : mtdblock2
여기서 Kernel, Ramdisk는 마운트가 되어 있지 않은 상태입니다.
따라서 app 영역을 마운트하여 데이타를 저장하거나 환경설정을 하시면 됩니다.
이 영역은 /dev/mtdblock2 를 사용하시면 됩니다. 기본적으로 마운트가 되어 있기 때문에 따로 마운트를 해 주실 필요는 없습니다.
타겟 보드에서 df 명령을 치시면 해당 마운트를 보실 수 있습니다.
또는 cat /proc/mtd 를 치시면 MTD 설정을 확인 할 수 있습니다.
[root@falinux ~]$ df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/ram 15863 13581 1463 90% /
/dev/mtdblock2 56320 100 56220 0% /app
[root@falinux ~]$ cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 00004000 "falinux boot/config/logo partition"
mtd1: 00800000 00004000 "falinux kernel/ramdisk partition"
mtd2: 03700000 00004000 "falinux yaffs partition"
[root@falinux ~]$
여기서 플래쉬 접근은 다음과 같습니다.
mtd0 ====> /dev/mtdblock0
mtd1 ====> /dev/mtdblock1
mtd2 ====> /dev/mtdblock2
그럼 좋은 하루 되세요..