iTOP4412开发板-Qt初探及Qtopia2.2.0系统开发
本章为大家介绍 Qtopia2.2.0,它是带桌面系统的 QT 的最终版本,虽然技术上不是最新的,但它仍有很大的现实意义,毕竟目前最新的 QT 技术只提供了图形库,没有像 Qtopia 这样有着友好的桌面系统。下一章我们会给大家介绍 QTE(即 QT 的嵌入式版本),包括 4.7 和5.7 两个版本,通过对比学习,相信会增强大家对 QT 系统整体认识和理解,而且在工作中也常会遇到这些不同版本之上的开发。
搭建 Qtopia2.2.0 开发环境,需要先搭建 Android 的编译环境,然后在 Android 编译环境的基础上,再搭建 Qtopia2.2.0 编译环境。
Qtopia2.2.0 的编译环境看似复杂,用户只要抓住几个要点就可以了。
第一:编译器。编译器在光盘中有提供,在接下来的教程的编译步骤中,将说明其在光盘中的位置。
第二:设置环境变量。只有在环境变量设置后,当我们编译系统的时候,系统才能找到编译器。
第三:库文件。我们将在搭建过程中,通过执行简单的脚本命令来安装库文件,这样就使得复杂的步骤变的简单有效。
第四:源码。官网下载的 Qtopia2.2.0 的源文件有少量的 Bug,经过迅为工程师的修改已经可以直接使用,因此这一步可以直接跳过。
如果用户是使用“搭建好的 Ubuntu 镜像”,则只需要修改一下环境变量,系统里面的工具和库文件都已经安装完毕了。
13.2.2 uboot 的编译
Qtopia2.2.0 系统中的 Uboot 和 Android4.0.3 的 Uboot 源码,编译器,参数配置,编译过程都是通用的,参考 7.3.1 小节。
13.2.3 Linux 内核的编译
Qtopia2.2.0 系统中 Linux 内核和 Android4.0.3 中的 Linux 内核源码是一样的,编译环境和编译方法也一样,参考 7.3.2 小节。
13.2.4 参数配置
Qtopia2.2.0 文件系统对应的内核、源码以及编译环境都和 Android4.0.3 的内核一样。区别在于‘配置文件’不一样。
内核的编译是组合式配置文件,基本的配置文件名是“config_for_linux_YY_elite”,YY表示用下表所示的参数替代。
13.2.5 编译生成内核镜像举例
这里以 SCP 1G 核心板为例编译 zImage 内核镜像,那么配置文件为
“config_for_linux_scp_elite”。
将光盘“06_源码_uboot 和 kernel”目录下的压缩包
“iTop4412_Kernel_3.0_xxx.tar.gz”拷贝到 Ubuntu,然后解压,得到文件夹
“iTop4412_Kernel_3.0 ”,如下图所示。
进入文件夹“iTop4412_Kernel_3.0 ”,使用命令
“cp config_for_linux_scp_elite .config”覆盖自带的配置文件,如下图所示。
如果用户要使用 5 寸屏幕,先要参考用户手册“5.5 支持 5 寸屏的内核补丁文件”,给内核打补丁,然后使用命令“vim .config”,在文件中搜索关键词
“CONFIG_TOUCHSCREEN_GT9XX=y”,在“CONFIG_TOUCHSCREEN_GT9XX=y”之后添加一行“CONFIG_TOPEET_LCD5X0=y”,添加完成之后,如下图所示。如果用户不使
用 5 寸屏幕,则可以跳过这一步。
最后使用编译命令“make zImage”,如下图所示。
编译中,如下图所示。
编译完成,如下图所示。
文件夹“iTop4412_Kernel_3.0 ”下的“arch”-->“arm”-->“boot”会生成镜像文件“zImage”,这个 zImage 镜像可以给 SCP 1G 和 SCP 2G 的核心板使用,如下图所示。
迅为4412开发板更多学习内容:哔哩哔哩搜索
原文地址:https://www.cnblogs.com/liyue3/p/15184230.html
- 原生JS | 数据类型检测,并没你想象的那么简单
- Excel 有哪些可能需要熟练掌握而很多人不会的技能?
- 原生JS | 值类型与引用类型变量
- 【编程基础】C语言内存使用的常见问题
- kmeans聚类理论篇K的选择(轮廓系数)
- 算法之旅 | 选择排序法
- 【专业技术】Android数据保存之SharedPreferences
- 【答疑解惑】Java中的高精度数字
- 2000! | 看上去如此简单的面试题,让太多“前端”英雄好汉折戟
- 【Windows编程】系列第六篇:创建Toolbar与Statusbar
- arguments,想说爱你不容易
- 【android开发】Android binder学习一:主要概念
- 高考啦! JavaScript高考全国卷
- 2017 JavaScript高考全国卷 参考答案与解析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- QT学习第3天:QSlider使用方法
- qt学习第2天:QRadioButtonTest+ButtonGroup单选后提示消息,QComBox
- Python使用矩阵分解法找到类似的音乐
- SpringBoot集成ELK实现日志收集实践
- python在Scikit-learn中用决策树和随机森林预测NBA获胜者
- R语言:用R语言填补缺失的数据
- R语言如何和何时使用glmnet岭回归
- r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现
- cmd里如何查看历史命令并执行
- akka-typed(10) - event-sourcing, CQRS实战
- 【每日一题】37. Sudoku Solver
- A quick introduction to innodb_ruby (2.对innodb_ruby的简单介绍)
- Webkit 内核初探
- 配置跨域后,框架帮我们做了什么?
- python应用(1):安装与使用