STM32MP157_Linux5.4+QT6.7.2+openCV开发——1软件框架构初认识

项目目标:

  1. 本学习过程以「STM32MP157」处理器的ARM开发板为实验基础,学习记录嵌入式Linux开发的各种知识与经验,主要内容包括嵌入式Linux移植,嵌入式Linux驱动开发,嵌入式Linux应用开发等;
  2. QT程序作为systemD守护进程启动;
  3. 系统开机需要在2s之内显示出开机界面;
  4. 系统开机需要在10s左右完成所有外设初始化和下位机的通讯,进入主界面;
  5. 需要用到的设备:CAN、UART、IIC、USB、SPI、LCD-8080、IIS、GPIO;
  6. 需要实现的功能:
    • USB驱动FAT32、exFAT、NTFS等主流格式的U盘;(基础功能)
    • 计划使用7寸/电阻屏,目前阶段先使用电容屏完成基础功能;(基础功能)
    • 能使用U盘进行程序升级;(基础功能)
    • 外扩物理按钮作为输入;(基础功能)
    • 能进行联网,上传日志、OTA升级、云指令接收、在线音视频播放等功能;(基础功能)
    • USB驱动摄像头;(基础功能)
    • 需要保存本地运行日志、通过U盘导出;(拓展功能)
    • 需要实现二维码首付款功能;(拓展功能)


嵌入式Linux的基本认识:

主要由如下3部分构成:
 

  • 「bootloader (TF-A+uBoot)」, Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段bootloader程序。 这段bootloader程序会先初始化DDR等外设, 然后将Linux内核从flash(NAND,NOR FLASH,SD,MMC 等)拷贝到 DDR 中,最后启动 Linux 内核。 bootloader 有很多,常用的就是 U-Boot。 bootloader 和 Linux 内核的关系就跟 PC 上的 BIOS 和 Windows 的关系一样,bootloader 就相当于 BIOS。
  • 「Linux 内核(kernel+dtbs)」,Linux内核由一系列程序组成,包括负责响应中断的中断服务程序、负责管理多个进程从而分享处理器时间的调度程序、负责管理地址空间的内存管理程序、网络、进程间通信的系统服务程序等。内核负责管理系统的硬件设备。
  • 「根文件系统(rootfs)」,Linux 中的根文件系统更像是一个文件夹或者叫做目录,在这个目录里面会有很多的子目录。根目录下和子目录中会有很多的文件,这些文件是 Linux 运行所必须的,比如库、常用的软件和命令、设备文件、配置文件等等。根文件系统里面包含了一些最常用的命令和文件。

  • 「U-Boot、Linux kernel和rootfs」 这三者一起构成了一个完整的Linux系统,一个可以正常使用、功能完善的Linux系统。

嵌入式Linux的构建:

Linux 平台上有许多开源的嵌入式 linux 系统构建框架(框架的意思就是 工具),这些框架极大的方便了开发者进行嵌入式系统的定制化构建,目前比较 常见的有 OpenWrt, Buildroot, Yocto,等等。其中 Buildroot 功能强大, 使用简单,而且采用了类似于 linux kernel 的配置和编译框架,所以受到广 大嵌入式开发人员的欢迎。网传Yocto非常胡好用,自学过程就采用buildroot进项,但是首先先按照韦东山的建议,先有限完成自己的APP设计目标和驱动设计目标,再去对现有的程序框架做裁剪。
 

不管怎样先上相关资源的链接。

 嵌入式Linux的硬件平台:

不做过多描述,参考韦东山的开发板即可。

 为什么要用QT6.7.2:

  • QT6对比QT5,在Qt quick 上做了大量的优化,编译出来的嵌入式软件大小也小了很多;
  • QT6使用Qt quick的情况下,开发触摸操作方式的嵌入式软件更加快速,比如:虚拟键盘组件;
  • 使用QML去做开发界面的过程与游戏行业使用JavaScript做开发的思路比较类似,用过cocos creater,unity 3D可能会有这种感觉;
  • 使用QML做界面开发,可以使界面层与后台服务层隔离的比较开,方便进行团队开发的管理;
  • 使用QML做界面开发,可以快速的实现丰富的动画效果;
  • Qt quick比桌面应用开发,对openGL的使用更加充分,对界面的流畅度有一定提升;


待续。。。

  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值