RTL2832U+R820T电视棒程序交叉编译在嵌入式中的使用与问题解决

1、交叉编译libusb
1)下载源码libusb-1.0.22.tar.bz2
2)解压:tar -jxvf libusb-1.0.22.tar.bz2
3)进入目录cd libusb-1.0.22,生成待安装的目录mkdir install(交叉编译好的库文件将放在此目录下)
4)./configure --build=i686-linux --host=arm-linux
–prefix=/home/xfc/usb/install CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++ --disable-udev
不加–disable-udev会出现configure:error:“udev support requested but libudev not installed”
(–build=i686-linux表示该软件在x86平台被编辑,–host=arm-linux表示该软件编译完成后在arm平台上运行,–prefix=给出要存放此库文件的目录,必须给出绝对路径名,–disable-udev必须有,否则就需要安装libudev)、
5)执行make&&make install,后可以在prefix指定的目录中看到编译好的库及相应的头文件。
2、交叉编译rtl-sdr
1)下载源码git clone git://git.osmocom.org/rtl-sdr.git
2)更改CMakeLists.txt,添加如下,指明程序运行平台以及编译所用的交叉编译器
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_C_COMPILER “arm-linux-gnueabi-gcc”)
SET(CMAKE_CXX_COMPILER “arm-linux-gnueabi-g++”)
3)编译,编译方法参照,编译完成后在build/src目录下出现librtlsdr.a
https://blog.csdn.net/ma_cheng_yuan/article/details/83652068
3、交叉编译dump1090
1)下载源码git clone https://github.com/antirez/dump1090.git
2)更改makefile,用上述编译生成的librtlsdr.a,libusb-1.0.a静态编译

INCLUDE = /home/test/rtl2832u/dianshibang/rtl-sdr/include
all: dump1090

%.o: %.c
	arm-linux-gnueabi-gcc  -c $< -I $(INCLUDE) -static ./librtlsdr.a ./libusb-1.0.a -lm -lpthread

dump1090: dump1090.o anet.o
	arm-linux-gnueabi-gcc -g -o dump1090 dump1090.o anet.o -static ./librtlsdr.a ./libusb-1.0.a -lm -I $(INCLUDE) -lpthread 

clean:
	rm -f *.o dump1090

4、编译完成之后放到嵌入式中执行,出现如下错误
1)/lib/libc.so.6: version `GLIBC_2.17’ not found (required by /lib/libusb-1.0.so.0)
原因:libc的版本太低,换了一个文件系统,原来的文件系统是直接在xilinx官网上之间下载的,后在xilinx关于qemu配置的wiki中下载了新的文件系统,此文件系统中libc的版本为2.19
2)程序成功运行之后不能搜到航班信息
原因:interactiveShowData函数中
while(a && count < Modes.interactive_rows),两个条件成立才能打印航班信息,打印了 Modes.interactive_rows为0,。
在main中的void modesInitConfig(void) 中
Modes.interactive_rows = MODES_INTERACTIVE_ROWS;//此时为15
Modes.interactive_rows = getTermRows();//变成了0
getTermRows中
ioctl(STDOUT_FILENO, TIOCGWINSZ, &size) //获得终端配置
ws_row; // 窗口字符行数
只需将Modes.interactive_rows = getTermRows();注释掉即可
5、经过上述步骤就能在嵌入式中读取航班信息了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值