|
发表于 2020-7-23 14:56:47
11749 浏览 4 回复
800x600 LCD驱动问题
为支持800x600的屏幕,参照群里的文档修改LCD屏幕驱动,会报下列错误:
[ 0.587000] nxp-fb.0: dma addr = 0x63600000, buf[0xe32bcb40]
[ 0.593000] nxp-fb.0: dma addr = 0x637d5000, buf[0xe32bcc80]
[ 0.599000] nxp-fb.0: dma addr = 0x639aa000, buf[0xe32bcdc0]
[ 0.657000] Unable to handle kernel paging request at virtual address efa05000
经过简单调试发现在nxp-fb.c的nxp_fb_copy_boot_logo函数中的memcpy((void*)dest, (const void*)virt, size)会出错,比这更大或更小的屏幕都不会出错,不知道为什么,也不知道怎么改,麻烦帮忙看一下,谢谢!
|
|
|
|
|
|
|
|
板子是哪款呢,看上去不是4418, 如果是6ULL的话可以调试一下是不是内存越界了,可以更改一下别的分辨率找一下规律。 |
|
|
|
|
|
|
|
楼主|
发表于 2020-7-25 15:27:38
板子是iTOP4418,很奇怪改成其他分辨率是可以的,改成768x600都可以,1024x768也可以,但是800x600就是会出这个错 |
|
|
|
|
|
|
|
楼主|
发表于 2020-7-25 15:28:45
本帖最后由 lwjobs 于 2020-7-25 15:35 编辑
出错的是 memcpy((void*)dest, (const void*)virt, size) 这一行,还有代码中480x272的分辨率做了特殊处理,不知道为何?
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|
|
|
|
|
|
|
应该还是缓冲区不够造成的,可以在分配frambuffer的地方改大,应该就没有问题了 |
|
|
|
|
|
|
登录或注册
扫一扫关注迅为公众号
|