QT5.6 移植Hisi3536 全纪录
### QT5.6 移植至 Hisi3536 的全纪录 #### 一、准备工作 在开始移植QT5.6至Hisilicon Hi3536平台之前,需要做好充分的准备。 ##### 1. 准备源码及工具 首先确保你拥有以下文件: - `qt-everywhere-opensource-src-5.6.2.tar.gz`:这是QT5.6的开源源码包。 - `qt-creator-opensource-linux-x86-3.4.2.run`:QT Creator集成开发环境的安装包。 - `Hi3536_SDK_V2.0.2.0.tgz`:Hisilicon Hi3536 SDK包。 ##### 2. 安装海思SDK及交叉编译器 接下来是安装Hisilicon提供的SDK及其配套的交叉编译器: - **获取SDK**:SDK包位于“Hi3536V100R001C02SPC020\01.software\board”目录下,其中包含`Hi3536_SDK_V2.0.2.0.tgz`文件。 - **解压SDK**:使用命令`tar -zxf Hi3536_SDK_V2.0.2.0.tgz`来解压SDK包。 - **展开SDK**:返回至`hi3520D_SDK_Vx.x.x.x`目录,并运行`./sdk.unpack`命令(需使用root或sudo权限)。按照提示完成展开操作。 - **清理SDK**:如果需要在Windows系统间拷贝SDK包,请先运行`./sdk.cleanup`命令来收起SDK包的内容,再将其拷贝到新的目录并再次展开。 - **修改脚本**:对于高版本的Ubuntu,需要修改`sdk.unpack`和`sdk.cleanup`脚本中的`#/bin/sh`为`#/bin/bash`。 ##### 3. 安装交叉编译器 在Linux服务器上安装交叉编译器: - **uCLIBC交叉编译器**:进入`hi3520D_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv300-linux`目录,运行`chmod +x cross.install`,然后执行`./cross.install`。 - **glibc交叉编译器**:进入`hi3520D_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv400-linux`目录,运行相同的命令来安装。注意,当前版本暂不支持glibc。 完成安装后,运行`source /etc/profile`以使环境变量生效,或者重新登录。 - **验证安装**:使用命令`arm-hisiv400-linux-g++ -v`检查交叉编译器是否正确安装。 #### 二、修改MMP/Sample/Hifb目录 为了确保QT应用程序能够在开发板上正常显示,需要对`mpp/sample/hifb`目录下的`sample_hifb.c`进行适当修改。 ##### 修改样例代码 1. **修改`main()`函数**:将原有的条件分支结构简化,使其直接进入第四个分支。 ```c int main(int argc, char *argv[]) { HI_S32 s32Ret = HI_SUCCESS; HI_CHAR ch; HI_BOOL bExit = HI_FALSE; signal(SIGINT, SAMPLE_HIFB_HandleSig); signal(SIGTERM, SAMPLE_HIFB_HandleSig); while (1) { SAMPLE_HIFB_Usage(); gs_cExitFlag = 0; SAMPLE_HIFB_Compression(); if (bExit) { break; } } return s32Ret; } ``` 2. **修改`SAMPLE_HIFB_Compression()`函数**:注释掉循环体中的所有代码,只保留`while (1) {}`;同时,将`stPubAttr.enIntfType`设置为`VO_INTF_HDMI`。 ```c void SAMPLE_HIFB_Compression() { // 注释掉其他代码 stPubAttr.enIntfType = VO_INTF_HDMI; while (1) {} } ``` 3. **修改`HI_VOID*SAMPLE_HIFB_COMPRESS(void*pData)`函数**:禁用压缩模式,将`bEnable`设置为`HI_FALSE`,并在调用`ioctl`之后添加无限循环`while (1) {}`。 ```c HI_VOID*SAMPLE_HIFB_COMPRESS(void*pData) { HI_S32 s32Ret; HI_BOOL bEnable = HI_FALSE; s32Ret = ioctl(pstInfo->fd, FBIOPUT_COMPRESSION_HIFB, &bEnable); while (1) {} } ``` 通过这些步骤,可以确保QT5.6在Hisilicon Hi3536平台上的顺利移植。在移植过程中可能会遇到其他问题,如依赖库的版本不兼容、编译时出现错误等,都需要逐一排查解决。
- 粉丝: 528
- 资源: 28
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C#/WinForm演示退火算法(源码)
- 如何在 IntelliJ IDEA 中去掉 Java 方法注释后的空行.md
- 小程序官方组件库,内含各种组件实例,以及调用方式,多种UI可修改
- 2011年URL缩短服务JSON数据集
- Kaggle-Pokemon with stats(宠物小精灵数据)
- Harbor 最新v2.12.0的ARM64版离线安装包
- 【VUE网站静态模板】Uniapp 框架开发响应式网站,企业项目官网-APP,web网站,小程序快速生成 多语言:支持中文简体,中文繁体,英语
- 使用哈夫曼编码来对字符串进行编码HuffmanEncodingExample
- Ti芯片C2000内核手册
- c语言实现的花式爱心源码
- 1
- 2
前往页