OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 810|回复: 9

[XILINX] zynq mpsoc-p5 xilinx linux编译疑问

[复制链接]

18

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2012-9-13
在线时间
32 小时
发表于 2024-4-25 11:41:42 | 显示全部楼层 |阅读模式
1金钱
1: 在测试linxu驱动程序时需要编译linux应用测试程序。      编译工具连
    使用 aarch64-xilinx-linux-gcc 工具链无法编译 应用程序。 会出现 这种 标准库都找不到 stdio.h: No such file or directory

  然后切换使用自己安装的  arm-linux-gnueabihf-gcc  可以编译通过。
  file 命令查看
  charapp: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.31, BuildID[sha1]=d624ee57cdd4f954b5e01a5bdb8de012b7cd70a4, with debug_info, not stripped

  和文档里的结果不太一致。
实际放到开发板里也无法运行,
root@workme2020:/home/guoz# ./charapp /dev/chrdevdemo 1
-sh: ./charapp: No such file or directory
root@workme2020:/home/guoz# ls -l
total 92
-rwxr-xr-x    1 root     root         10969 Dec 12 23:18 charapp
-rw-r--r--    1 root     root         78994 Dec 12 03:37 debug1.txt
root@workme2020:/home/guoz#

报没有这个app 但是实际上运行目录下有这个文件。

这个是什么问题呢?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2024-3-19
在线时间
105 小时
发表于 2024-4-25 14:12:36 | 显示全部楼层
报没有这个app 但是实际上运行目录下有这个文件
这个问题主要是交叉编译环境的问题,P5要用aarch64-xilinx-linux-gcc工具链来编译,至于编译错误可以提供一点详细的log看一下
回复

使用道具 举报

18

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2012-9-13
在线时间
32 小时
 楼主| 发表于 2024-4-25 14:18:10 | 显示全部楼层
guoz@guoz:~/work/04-mpsoc/xilinx-worklab-v1/sources/sfuav-driver/char_demo$ aarch64-xilinx-linux-gcc chardev_test.c -o charapp
chardev_test.c:1:10: fatal error: stdio.h: No such file or directory
    1 | #include "stdio.h"
      |          ^~~~~~~~~
compilation terminated.
guoz@guoz:~/work/04-mpsoc/xilinx-worklab-v1/sources/sfuav-driver/char_demo$
回复

使用道具 举报

0

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2024-3-19
在线时间
105 小时
发表于 2024-4-25 15:26:38 | 显示全部楼层
aarch64-xilinx-linux-gcc chardev_test.c -o charapp
这个命令编译时要指定一下sysroot路径。比如我本地如果用aarch64-xilinx-linux-gcc命令来编译的话,用的命令是aarch64-xilinx-linux-gcc --sysroot=/opt/petalinux/2020.2/sysroots/aarch64-xilinx-linux,一般可以通过环境变量来设置好,就不用每次交叉编译都用这么长的命令了
回复

使用道具 举报

18

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2012-9-13
在线时间
32 小时
 楼主| 发表于 2024-4-25 15:29:10 | 显示全部楼层
太疑惑了
用$CC chardev_test.c -o charapp 可以编译

用 aarch64-xilinx-linux-gcc chardev_test.c -o charapp2  就无法编译

$CC 不就是 aarch64-xilinx-linux-gcc 吗?   我环境出什么问题了吗?

guoz@guoz:~/work/04-mpsoc/xilinx-worklab-v1/sources/sfuav-driver/char_demo$ $CC chardev_test.c -o charapp
guoz@guoz:~/work/04-mpsoc/xilinx-worklab-v1/sources/sfuav-driver/char_demo$ ls
charapp  chardev_test.c  drv_demo.c  drv_demo.ko  drv_demo.o  Makefile  modules.order  Module.symvers
guoz@guoz:~/work/04-mpsoc/xilinx-worklab-v1/sources/sfuav-driver/char_demo$ $CC
aarch64-xilinx-linux-gcc: fatal error: no input files
compilation terminated.
guoz@guoz:~/work/04-mpsoc/xilinx-worklab-v1/sources/sfuav-driver/char_demo$ aarch64-xilinx-linux-gcc chardev_test.c -o charapp2
chardev_test.c:1:10: fatal error: stdio.h: No such file or directory
    1 | #include "stdio.h"
      |          ^~~~~~~~~
compilation terminated.



回复

使用道具 举报

0

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2024-3-19
在线时间
105 小时
发表于 2024-4-25 15:33:18 | 显示全部楼层
用命令echo $CC查看下环境变量,你应该在$CC的环境变量里设置好了sysroot路径
回复

使用道具 举报

0

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2024-3-19
在线时间
105 小时
发表于 2024-4-25 15:34:34 | 显示全部楼层
如果你之前设置过环境变量的话,$CC确实用的就是aarch64-xilinx-linux-gcc,但是它还有其他的参数
回复

使用道具 举报

18

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2012-9-13
在线时间
32 小时
 楼主| 发表于 2024-4-25 15:38:01 | 显示全部楼层
使用$CC 编译的结果   从验证结果来看是执行了的
但是我的  /proc/devices  和 /proc/misc 里  怎么看不到这个设备。

root@workme2020:/# ./charapp /dev/chrdevdemo 1
[ 3863.153345] chrdevdemo open!
[ 3863.156350] kernel senddata ok!
[ 3863.159566] chrdevdemo read!
read data:kernel chrdevdemo data!
[ 3863.162643] chrdevdemo release!
root@workme2020:/# ls /proc/devices
/proc/devices
root@workme2020:/# cat /proc/devices
Character devices:
  1 mem
  4 /dev/vc/0
  4 tty
  4 ttyS
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
  7 vcs
10 misc
13 input
29 fb
81 video4linux
89 i2c
90 mtd
116 alsa
128 ptm
136 pts
180 usb
189 usb_device
204 ttyUL
204 ttyMAX
216 rfcomm
226 drm
242 ttyPS
243 rpmb
244 mipi_touch
245 uio
246 nvme
247 bsg
248 watchdog
249 iio
250 ptp
251 pps
252 media
253 rtc
254 gpiochip

Block devices:
  1 ramdisk
  7 loop
  8 sd
31 mtdblock
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
179 mmc
259 blkext
root@workme2020:/# cat /proc/misc   
59 ubi_ctrl
130 watchdog
234 btrfs-control
60 cpu_dma_latency
61 fpga0
137 vhci
200 tun
237 loop-control
235 autofs
62 rfkill
63 ion
root@workme2020:/# lsmod
Module                  Size  Used by
drv_demo               16384  0
root@workme2020:/#
回复

使用道具 举报

18

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2012-9-13
在线时间
32 小时
 楼主| 发表于 2024-4-25 19:29:32 | 显示全部楼层
guoz@guoz:~/work/04-mpsoc/xilinx-worklab-v1/sources/sfuav-driver/char_demo$ echo $CC
aarch64-xilinx-linux-gcc -mcpu=cortex-a72.cortex-a53 -march=armv8-a+crc -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/petalinux_sdk202302/sysroots/cortexa72-cortexa53-xilinx-linux
回复

使用道具 举报

18

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2012-9-13
在线时间
32 小时
 楼主| 发表于 2024-4-25 19:30:05 | 显示全部楼层
使用$CC 编译的结果   从验证结果来看是执行了的
但是我的  /proc/devices  和 /proc/misc 里  怎么看不到这个设备。

root@workme2020:/# ./charapp /dev/chrdevdemo 1
[ 3863.153345] chrdevdemo open!
[ 3863.156350] kernel senddata ok!
[ 3863.159566] chrdevdemo read!
read data:kernel chrdevdemo data!
[ 3863.162643] chrdevdemo release!
root@workme2020:/# ls /proc/devices
/proc/devices
root@workme2020:/# cat /proc/devices
Character devices:
  1 mem
  4 /dev/vc/0
  4 tty
  4 ttyS
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
  7 vcs
10 misc
13 input
29 fb
81 video4linux
89 i2c
90 mtd
116 alsa
128 ptm
136 pts
180 usb
189 usb_device
204 ttyUL
204 ttyMAX
216 rfcomm
226 drm
242 ttyPS
243 rpmb
244 mipi_touch
245 uio
246 nvme
247 bsg
248 watchdog
249 iio
250 ptp
251 pps
252 media
253 rtc
254 gpiochip

Block devices:
  1 ramdisk
  7 loop
  8 sd
31 mtdblock
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
179 mmc
259 blkext
root@workme2020:/# cat /proc/misc   
59 ubi_ctrl
130 watchdog
234 btrfs-control
60 cpu_dma_latency
61 fpga0
137 vhci
200 tun
237 loop-control
235 autofs
62 rfkill
63 ion
root@workme2020:/# lsmod
Module                  Size  Used by
drv_demo               16384  0
root@workme2020:/#
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 10:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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