도와주세요!!
글 수 15,339
2008.11.17 10:58:12 (*.133.126.241)
9371
앞서 답글 올려 주셔서 감사합니다.
아직 문제는 풀리지 않고 있습니다만.......ㅠㅠ
한가지 더 문의 드리고픈 내용이 있어서요..
시리얼 통신을 하고 있는데 너무 진전도 없고 해결될 기미가 안보여서요..
외부 하드웨어 살펴보라는 말씀에 확인은 해보았습다만 잘 모르겠거든요.....ㅠㅠ
외부에 TL16C2550 을 사용해서 시리얼 통신을 하고 있습니다.
리눅스 드라이버는 사용하지 않고 단지 인터럽트 포트만 사용해서 인터럽트 발생하면
인터럽트 서비스 루틴에서 별도로 작성한 디바이스 드라이버를 통해 데이터 읽어오고 보내고 있습니다.
구성도를 대략 압축하면 다음과 같구요.
CPU ---- Transceiver chip ---- FPGA ---- TL16C2550
| |
| 인터럽트 라인 연결
데이터 read/wirte on/off
TL16C2550에서 트리거 레벨 인터럽트(high) 발생되면 FPGA에서 다시 low 로 바꾸어서 CPU로 보내주고 또한 데이터 read /write
방향 제어도 FPGA에서 어드레스에 의해 조절되어 집니다.
해당 구성이 16bit CPU 사용시에는 잘 되었었는데 32ibt CPU에서는 동작이 잘 되지 않고 있습니다.
왠지 느낌에는(??) 인터럽트랑 데이터 넘어오는 타이밍이 좋지 않은듯 싶은데......
어디를 어떻게 디버깅 해보고 확인해보아햐 할지...
막막합니다.
다시 한번 고수님의 조언 부탁드립니다.
감사합니다.
아직 문제는 풀리지 않고 있습니다만.......ㅠㅠ
한가지 더 문의 드리고픈 내용이 있어서요..
시리얼 통신을 하고 있는데 너무 진전도 없고 해결될 기미가 안보여서요..
외부 하드웨어 살펴보라는 말씀에 확인은 해보았습다만 잘 모르겠거든요.....ㅠㅠ
외부에 TL16C2550 을 사용해서 시리얼 통신을 하고 있습니다.
리눅스 드라이버는 사용하지 않고 단지 인터럽트 포트만 사용해서 인터럽트 발생하면
인터럽트 서비스 루틴에서 별도로 작성한 디바이스 드라이버를 통해 데이터 읽어오고 보내고 있습니다.
구성도를 대략 압축하면 다음과 같구요.
CPU ---- Transceiver chip ---- FPGA ---- TL16C2550
| |
| 인터럽트 라인 연결
데이터 read/wirte on/off
TL16C2550에서 트리거 레벨 인터럽트(high) 발생되면 FPGA에서 다시 low 로 바꾸어서 CPU로 보내주고 또한 데이터 read /write
방향 제어도 FPGA에서 어드레스에 의해 조절되어 집니다.
해당 구성이 16bit CPU 사용시에는 잘 되었었는데 32ibt CPU에서는 동작이 잘 되지 않고 있습니다.
왠지 느낌에는(??) 인터럽트랑 데이터 넘어오는 타이밍이 좋지 않은듯 싶은데......
어디를 어떻게 디버깅 해보고 확인해보아햐 할지...
막막합니다.
다시 한번 고수님의 조언 부탁드립니다.
감사합니다.
UART 칩들은 인터럽트를 트리거로 사용하지 않습니다. 레벨로 사용합니다.
이 부분을 우선 확인해 보세요
커널에서 uart 칩을 정확히 찾아냈다면 어드레스버스나 데이타 버스는 문제가 없습니다.
역시나 인터럽트 겠죠..
문제는 인터럽트이니 이곳을 집중적으로 공략하세요