임베디드 Linux LCD가 보정되지 않았습니다.

임베디드 Linux LCD가 보정되지 않았습니다.

내 임베디드 Linux 장치에 새 LCD를 연결했는데 시스템을 실행하면 LCD가 오른쪽으로 이동하는 것을 볼 수 있습니다. (LCD 중앙부터 표시)

Linux 커널 드라이버에서 2개의 프레임버퍼 드라이버를 찾아 다음과 같은 방법으로 수정했습니다.

#ifdef CONFIG_TOPPOLY_TD035TTEA3_320X240
        hsync_len   :  64, 
        vsync_len    :  6,
        left_margin :  125, 
        upper_margin :  70,
        right_margin:  115,  
        lower_margin :  36,
        sync:        0,        
        cmap_static:    0,        
#endif

그러나 문제는 남아 있습니다. 어떻게 해야 합니까?

답변1

값을 커널로 인코딩하기 전에 다음을 사용하여 대화식으로 테스트하십시오.fbset. 프로덕션 환경에서는 이러한 방식으로 사용자 공간에서 패널 매개변수를 설정할 수 있지만 많은 개발자는 부팅 초기에 화면을 켜야 합니다.

이러한 알려진 양호한 값을 초기에 설정하려면 해당 값을 커널에 넣을 수 있습니다. 커널에 넣은 값이 적용되지 않는 것 같으면 장치에 대한 올바른 프레임 버퍼 설명을 수정하지 않았을 수 있습니다. 나는 종종 내 코드에 구문 오류가 발생하고 컴파일에 실패하는지 확인합니다. 컴파일러가 내 오류를 무시하면 구성에 의해 코드 블록이 비활성화되었음을 알 수 있습니다.

유효한 설정을 찾을 수 없는 경우 패널과 칩의 LCD 컨트롤러에 대한 데이터시트를 확인하여 둘 다 호환 가능한 타이밍이 있는지 확인하세요.

관련 정보