도와주세요!!
글 수 15,339
2017.12.10 17:36:22 (*.176.58.24)
50058
제가 타겟보드의 NOR Flash메모리 속도확인을 해보려고 NOR Flash영역에 임의의 데이터를 쓰고 읽고 그시간을 체크하는 프로그램을 만드려고하는데요
타겟보드 데이터시트를 보니까
start addr : 0x6400 0000
end addr : 0x6FFF FFFF
라고 정의되어있어서 코딩할떄 메모리에 매핑할수있는 mmap함수를 사용할때 start addr를 잘 지정해서 NOR Flash에 매핑까진 성공 한거같은데요
EX:)mmap함수 사용부분, 사이즈는 4M정도 지정함, fd=/dev/mem
addr = (volatile unsigned short *)mmap(NULL,NOR_ADDR+NOR_SIZE, PROT_READ|PROT_WRITE,MAP_SHARED, fd,NOR_ADDR);
이런 형태로 코드를 작성했을때
addr[i]=0xA5A5; 이런식으로 데이터를 쓰려고하는데 도무지 들어가지가않습니다.
다반 printf문으로 읽어오면 초기값이 ffff인지 ffff만 출력되더군요 (%d 출력시 -1)
메모리에 데이터를쓰려면 따로사용하는 함수가있거나 권한(?)같은게 따로있는것인지 여쭙고싶습니다... 이거 꼭 해결하고싶어욧
ps.정말 급한데요 아시는분 잘이해안가시는부분있으면 데이터시트 및 소스 작성한것까지 다보여드릴수있습니다...부탁드릴게요 ㅠ
NOR Flash 에 기록할때는 Memory Mapped 처럼 쓸 수는 없구요.
따로 쓰는 방식이 있습니다.
NOR Flash 가 spi 인터페이스로 연결되어 있는지 아니면 별도의 Controller를 통해서 연결되어 있는지에 따라서
쓰는 방식이 다릅니다.
kernel에포팅이 어떻게 포팅이 되어 있는지 부터 확인이 필요해 보이네요.