작성자Yacc작성시간05.07.07
음.. MMU 설정으로 실제 Physical address와 Logical address와는 차이가 생깁니다. 보통 0x04000000 이 bank1이라면 이를 mmu 설정으로 0xf나 0xe 이후의 메모리 영역으로 (Kernel space) remap 하신 후에 device driver에서는 이 영역을 사용하셔서 짜셔야 합니다. 이때 SROM Bus의 경우 대다수가 Non bufferable,
작성자Yacc작성시간05.07.07
Non cacheable 일테니, MMU 설정시 이 값을 확인하시기 바랍니다. 더불어 device driver에서는 0xfxxxxxx등의 address를 직접 accessing 가능하지만 application에서는 상기영역은 접근 불가능합니다. device driver 에서 처리하시고, 어플에선 직접 해당 주소에 쓰는 그런 일들을 하면 segmentation falut가 납니다
작성자Yacc작성시간05.07.07
io_remap(0x04000000, 0xf0000000, 1024*1024, 0,0,0,0); (정확한 함수 명은 가물가물 -_-) 로 mmu 설정해주시고 사이즈와 옵션 처리만 해주시면 됩니다. 대충 ROM Bank address라인의 경우, 많아 봐야 10 라인 이하임으로 대략적으로 1M 정도만 잡으셔도 될 것 같네요...