printk
에는 pr_info
, pr_err
인쇄 기능을 사용할 때 인쇄 수준을 제어하고 다양한 시나리오에 대해 다양한 인쇄 기능을 사용하는 방법을 배워야 합니다. printk
,内核里面有很多pr_info
、pr_err
等打印函数,要学会控制打印等级,以及针对不同的场景使用不同的打印函数。
内核有默认配置文件xxx_defconfig
,如果你要修改内核的一些配置,作为新手不要直接去修改xxx_defconfig。
稳妥的做法是执行make menucofig
通常菜单进行配置,最后把.config
文件覆盖掉xxx_defconfig
,然后再上传这个xxx_defconfig
xxx_defconfig
, 일부 커널 구성을 수정하려면 초보자로서 xxx_defconfig를 직접 수정하지 마세요. 🎜🎜안전한 접근 방식은 make menucofig
보통 메뉴를 구성하고 마지막으로 .config code> 파일 덮어쓰기<code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px; background-color: rgba(27, 31, 35, 0.05 );font-family: " operator mono consolas monaco menlo monospace break-all rgb>xxx_defconfig
, 그런 다음 업로드 이 xxx_defconfig
. 🎜리눅스에서는 연산 레지스터를 먼저 매핑해야 하는데, 일반적으로 기본 주소만 매핑하고 기본 주소와 오프셋을 추가하여 작업을 수행합니다. .
각 레지스터의 물리적 주소를 직접 매핑하지 마세요. 특정 드라이버의 경우 레지스터가 많아도 기본 주소는 동일하기 때문입니다.
Linux 드라이버라도 uboot
怎么启动kernel
,都传了什么参数,涉及到的地址有哪些,uboot
드라이버 작성 방법을 알아야 합니다.
메모리 관련 지식을 꼭 읽어보세요. Linux에서의 모든 작업은 가상 주소이며, 레지스터에 기록되는 것은 물리적 주소입니다. 가상 주소에 해당하는 물리적 주소를 어떻게 알 수 있나요? DMA 일관성 메모리 할당과 일반 메모리 할당의 차이점은 무엇입니까?
등록 매뉴얼에 적힌 주소가 실제 주소라 기억해두었습니다.
dma 메모리 문제, 캐시 일관성 문제 등은 피할 수 없습니다 .
위 내용은 Linux 드라이버 입사 후 초보자가 들어야 할 5가지 조언의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!