当前位置: 首页 > news >正文

Linux上位机开发实战(x86和arm自由切换)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面我们说过,qt本身支持windows系统,也支持linux系统。不仅如此,qt除了支持传统的x86 cpu之外,还支持arm、aarch64 cpu。这样的话,就有很多、很多的好处,我们一一道来。

1、跨OS平台编译

        所谓的跨平台,就是如果喜欢windows开发的朋友,可以先使用visual studio做完界面开发之后,再port到嵌入式设备也是可以的。一般来说,界面部分都比较繁琐,所以调整和细节优化的工作非常多。这一部分对于使用习惯windows平台的同学来说,还是非常方便的。

2、没有板子可以先ubuntu虚拟机开发

        很多时候,嵌入式arm平台的资源本来就不是很多。上面未必有g++编译环境、gdb调试环境。这种情况下,完全可以先在ubuntu完成大部分linux工作的开发,然后切换到嵌入式设备上面去。很多时候,pc资源要比嵌入式设备多得多,调试也很方便。

3、Makefile切换也很容易

        前面我们说过,尽量使用Makefile的方式来进行软件开发。这个时候,优势就体现出来了。如果我们在嵌入式平台开发的软件,完全可以提前在x86 pc平台开发好,等到板子ready了之后,再port到板子上也是完全可以的。所要做的工作,就是切换一下Makefile即可,比如arm的Makefile改一下,就是x86_64的Makefile,

.PHONY: all cleanINCLUDE_DIR=-I /usr/include/x86_64-linux-gnu/qt5 \-I /usr/include/x86_64-linux-gnu/qt5/QtWidgets\-I /usr/include/x86_64-linux-gnu/qt5/QtGui \-I /usr/include/x86_64-linux-gnu/qt5/QtCoreall: mainmain: main.o QtWidgetsApplication.o moc_QtWidgetsApplication.og++ -g $^ -o main -lQt5Widgets -lQt5Gui -lQt5Coremain.o: main.cpp QtWidgetsApplication.hg++ -fPIC -g -c main.cpp -o main.o $(INCLUDE_DIR)QtWidgetsApplication.o: QtWidgetsApplication.cpp QtWidgetsApplication.hg++ -fPIC -g -c QtWidgetsApplication.cpp -o QtWidgetsApplication.o $(INCLUDE_DIR)QtWidgetsApplication.h:ui_QtWidgetsApplication.hui_QtWidgetsApplication.h: QtWidgetsApplication.uiuic $^ -o ui_QtWidgetsApplication.hmoc_QtWidgetsApplication.o : moc_QtWidgetsApplication.cppg++ -fPIC -g -c moc_QtWidgetsApplication.cpp -o moc_QtWidgetsApplication.o $(INCLUDE_DIR)moc_QtWidgetsApplication.cpp : QtWidgetsApplication.hmoc -o moc_QtWidgetsApplication.cpp QtWidgetsApplication.hclean:rm -rf main *.o ui_*.h moc_*.cpp

4、外设接口部分先打桩

        很多嵌入式开发会涉及到232/485/can/usb/ethernet,这里面除了usb/以太网之外,大部分功能没有办法在pc上做实际功能的开发,因此这个时候可以先做打桩处理。打桩的函数不需要写的很具体,保证整体工程可以编译通过即可。等到后期硬件ok了,再放开即可。如果比较紧急,打桩函数简单实现一下也行,这样可以保证项目进展的推动。

5、soc硬件加速一定要使用起来

        我们使用嵌入式设备除了方便、便捷之外,很大的一个原因就是成本。很多soc,本身就是为了特定场景来设计的。所以这种情况下,如果遇到cpu比较差的嵌入式设备,不能把所有的功能全部用cpu来完成,这样肯定是没有办法达到满意效果的。比较好的做法,就是尽可能把soc的硬件加速功能用起来,这里包括不限于硬件编码、解码、crc计算、dma、gpu、npu、mcu、显示加速等等。总是,板子上有什么资源,都尽可能用起来,这样才能用很少的钱,就能实现一样的pc效果。


http://www.mrgr.cn/news/94051.html

相关文章:

  • 【性能测试】Jmeter如何做一份测试报告(3)
  • 大模型架构记录3-1-Gradio 入门
  • 【FreeRTOS】FreeRTOS操作系统在嵌入式单片机上裸机移植
  • Maven的依赖管理
  • ubuntu 解决 DNS 代理设置错误,导致不能上网的 DoH、DoT问题
  • 统计登录系统10秒内连续登录失败超过3次的用户
  • 基于redisson实现接口幂等性
  • Jenkins链接私有仓库Failed to connect to repository,stderr: No ECDSA...的问题
  • bootloader相关部分
  • 通道注意力机制、空间注意力机制、混合注意力机制
  • 【Spring 事务】
  • PySide(PyQT),QGraphicsRectItem的setPos()和setRect()的坐标位置的区别
  • 【WRF-Urban】使用 LCZ 替换 WRF 运行中的 LUCC 数据
  • 【Yonghong 企业日常问题07 】 东方通TongWeb替代Tomcat的实战指南!
  • 如何使用logrotete定时切割mysql的慢日志
  • Android DUKPT - 3DES
  • shell编程——条件表达式和if判断
  • liunx磁盘挂载和jar启动命令
  • Vue3项目-大事件
  • 在资源有限中逆势突围:从抗战智谋到寒门高考的破局智慧