搜索
bottom↓
回复: 15
打印 上一主题 下一主题

求助 Petalinux 下 修改kernel 中自带的LCD的程序,竟然不被编译

[复制链接]

出0入91汤圆

跳转到指定楼层
1
发表于 2023-3-13 10:56:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,kernel config 里面也勾选了这个LCD 的驱动,  然后编译后屏幕也能工作, 但是 因为要对LCD进行图像的偏移,所以需要对 st7789.c进行修改,  但是修改后竟然发现对结果没改动

然后尝试  故意把代码改错(理论上不能编译了),结果 按正常流程  build后, 竟然也没报错,所以很奇怪


问了一些人说 每次build 的时候会从网络上重新加载这些文件,所以本地的不会被编译,不知道是不是这样,有经历过的坛友么


阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入90汤圆

2
发表于 2023-3-13 11:04:48 | 只看该作者
设备树文件修改一下试试呢,现在新的linux版本都是通过修改dts文件来改动这些参数的,这样不需要每次重新修改内核。

出0入91汤圆

3
 楼主| 发表于 2023-3-13 11:21:29 | 只看该作者
本帖最后由 ackyee 于 2023-3-13 11:23 编辑
honami520 发表于 2023-3-13 11:04
设备树文件修改一下试试呢,现在新的linux版本都是通过修改dts文件来改动这些参数的,这样不需要每次重新修 ...
(引用自2楼)


设备树可以改分辨率 和帧率,但是我这个LCD   整体偏移了,  我看了卖家给的资料,他们C语言 写的代码  X轴都要+34, 所以单纯通过改分辨率好像实现不了, 还是得调整底层驱动


怀疑 卖家做的屏幕是从ST7789的第34行开始引出的


对了 设备树  怎么和驱动对应上的, 比方说设备树里的  参数,我好像在7789.c里找不到对应相同名称的变量

出0入442汤圆

4
发表于 2023-3-13 15:33:06 来自手机 | 只看该作者
ackyee 发表于 2023-3-13 11:21
设备树可以改分辨率 和帧率,但是我这个LCD   整体偏移了,  我看了卖家给的资料,他们C语言 写的代码  X ...
(引用自3楼)

。。你改的不是它用的那个文件,或者没有重新编译。。你先找到.o文件,删掉再编译应该可以。gcc有时不会自动重新编译.o

出0入984汤圆

5
发表于 2023-3-13 15:40:48 | 只看该作者
本帖最后由 Himem 于 2023-3-13 15:41 编辑

buildroot是内核编译过后,没有动config就不会再编译
需要 make linux-rebuild,或make menuconfig随便改点什么

LZ的环境估计也有类似机制

出0入91汤圆

6
 楼主| 发表于 2023-3-13 16:33:39 | 只看该作者
wye11083 发表于 2023-3-13 15:33
。。你改的不是它用的那个文件,或者没有重新编译。。你先找到.o文件,删掉再编译应该可以。gcc有时不会 ...
(引用自4楼)

我感觉你说的.o的这个问题 可能性比较大  因为 我重新编译后 速度特别快2分钟就完成了

出0入91汤圆

7
 楼主| 发表于 2023-3-13 16:34:11 | 只看该作者
Himem 发表于 2023-3-13 15:40
buildroot是内核编译过后,没有动config就不会再编译
需要 make linux-rebuild,或make menuconfig随便改点 ...
(引用自5楼)

应该是的 因为第一次编译很久,后面几次 速度很快就完成了

出0入90汤圆

8
发表于 2023-3-13 16:53:23 | 只看该作者
你要看打印信息啊,你改过的文件有没有被编译到。
而且,如果你是每次从网络重新下载文件,那你改掉的地方,可能编译完成后已经没了。

出0入91汤圆

9
 楼主| 发表于 2023-3-13 20:16:42 | 只看该作者
honami520 发表于 2023-3-13 16:53
你要看打印信息啊,你改过的文件有没有被编译到。
而且,如果你是每次从网络重新下载文件,那你改掉的地方 ...
(引用自8楼)

囧 修改了官方的 .c  然后 删除了.o  还是无法被编译,   然后  修改了KERNEL的界面项,  再重新编译, 系统提示我.c被更新了 是否重新载入

看来真的是联网的

出0入91汤圆

10
 楼主| 发表于 2023-3-13 20:17:37 | 只看该作者
wye11083 发表于 2023-3-13 15:33
。。你改的不是它用的那个文件,或者没有重新编译。。你先找到.o文件,删掉再编译应该可以。gcc有时不会 ...
(引用自4楼)

已经确认了    ,每次修改petalinux  kernel的图形配置界面,  再BUILD   系统就会联网重新下载驱动,并覆盖原先驱动

然后用你的方式  直接删除.o   对编译没影响

出0入91汤圆

11
 楼主| 发表于 2023-3-13 20:51:40 | 只看该作者
Himem 发表于 2023-3-13 15:40
buildroot是内核编译过后,没有动config就不会再编译
需要 make linux-rebuild,或make menuconfig随便改点 ...
(引用自5楼)

已经确定了 ,每次重新编译, 你修改的.c文件都会被  重新覆盖更新

联网无疑了

出0入4汤圆

12
发表于 2023-3-13 21:03:02 来自手机 | 只看该作者
自己下载内核源码,然后在petalinux-config里面配置使用外部源码,应该可以吧

出0入4汤圆

13
发表于 2023-3-13 21:17:35 来自手机 | 只看该作者
ackyee 发表于 2023-3-13 11:21
设备树可以改分辨率 和帧率,但是我这个LCD   整体偏移了,  我看了卖家给的资料,他们C语言 写的代码  X ...
(引用自3楼)

LCD的驱动是在linux的framebuffer框架下工作的,显示驱动经过fbmem.c里面进行设置。LCD驱动只需要填写完成框架所需要的fb_info结构,然后完成注册就行了

出0入91汤圆

14
 楼主| 发表于 2023-3-13 22:57:09 | 只看该作者
thepresent 发表于 2023-3-13 21:03
自己下载内核源码,然后在petalinux-config里面配置使用外部源码,应该可以吧
(引用自12楼)

这个应该是没有办法的办法 ,我先想想看其他方法看看,主要linux 我还不是特别熟悉

出0入0汤圆

15
发表于 2023-3-14 09:07:48 | 只看该作者
ackyee 发表于 2023-3-13 20:51
已经确定了 ,每次重新编译, 你修改的.c文件都会被  重新覆盖更新

联网无疑了 ...
(引用自11楼)

如果你修改的是temp目录下的代码,估计是有问题的。
一般yocto里面,如果自己增加配置的话,需要增加一个kernel*.bbapend才行。

查找执行kernel的bb文件,然后看一下SRC的实际位置。

出0入115汤圆

16
发表于 2023-3-14 09:14:50 | 只看该作者
make linux-rebuild
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 14:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表