前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【分享】PetaLinux调试技巧2篇

【分享】PetaLinux调试技巧2篇

作者头像
hankfu
发布2022-03-23 10:19:55
1.3K0
发布2022-03-23 10:19:55
举报
文章被收录于专栏:hank

作者: 付汉杰 hankf@xilinx.com hankf@amd.com 测试环境: Vivado/PetaLinux 2021.2, Linux 5.10.0

禁止Petalinux的recipes增加的驱动

Petalinux工程,通过meta-user\recipes-kernel\linux\linux-xlnx中的patch文件,给Linux kernel增加了驱动,并使能为module形式编译。 再在Petalinux-config -c kernel中disable。编译Petalinux工程后,文件系统里,还是有对应的驱动。 在编译后,把linux kernel的代码复制出来,再修改其中对应驱动程序的makefile,在makefile里删除驱动的“.o”文件。之后再编译,文件系统里,对应的驱动消失了,达到了目的。

编译时,Linux内核驱动程序中的__DATE__和__TIME__ 被报告错误

调试时,为了保证使用的内核驱动程序是最新版本,再驱动里增加了__DATE__和__TIME__的打印。编译时,得到下列错误。

代码语言:javascript
复制
hankf@XSZGS4:kernel-source-patch$ make -j 64

  CALL    scripts/atomic/check-atomics.sh
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CC [M]  drivers/media/i2c/avt_multi_sensor_fmc/max9296_serdes.o
  CC [M]  drivers/media/i2c/avt_multi_sensor_fmc/max9295_serdes.o
drivers/media/i2c/avt_multi_sensor_fmc/max9295_serdes.c: In function 'max9295_serdes_probe':
drivers/media/i2c/avt_multi_sensor_fmc/max9295_serdes.c:58:93: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]
   58 |  printk(KERN_INFO "%s:%d, MAX9295 driver, compilation time: %s, %s.\n", __func__, __LINE__, __DATE__, __TIME__ );
      |                                                                                             ^~~~~~~~
drivers/media/i2c/avt_multi_sensor_fmc/max9295_serdes.c:58:103: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]
   58 |  printk(KERN_INFO "%s:%d, MAX9295 driver, compilation time: %s, %s.\n", __func__, __LINE__, __DATE__, __TIME__ );
      |                                                                                                       ^~~~~~~~
cc1.real: some warnings being treated as errors

根据网上文章,在驱动的Makefile里,如下添加CFLAGS或者EXTRA_FLAGS,可以去掉这个错误。实际测试,没有作用。

代码语言:javascript
复制
CFLAGS += -Wno-error=date-time -Wno-date-time 
EXTRA_FLAGS += -Wno-error=date-time -Wno-date-time 

后来研究后,在驱动的Makefile里增加“ccflags-y”,可以去掉这个错误。

代码语言:javascript
复制
ccflags-y += -Wno-error=date-time -Wno-date-time

后来能编译成功。

代码语言:javascript
复制
hankf@XSZGS4:kernel-source-patch$ make
  CALL    scripts/checksyscalls.sh
  CALL    scripts/atomic/check-atomics.sh
  CHK     include/generated/compile.h
  CC [M]  drivers/media/i2c/avt_multi_sensor_fmc/max9286_serdes.o
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 禁止Petalinux的recipes增加的驱动
  • 编译时,Linux内核驱动程序中的__DATE__和__TIME__ 被报告错误
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档