EasyARM-i.MX283A 开发环境配置笔记

news/2024/11/7 18:09:58/

EasyARM-i.MX283A 开发环境配置笔记

准备开发环境所需的文件:
在这里插入图片描述
已上传网盘,自行下载
链接:https://pan.baidu.com/s/1C3SB3UR5Yfn8huMj5kP7GA
提取码:gy1y

一、创建虚拟机

使用:ubuntu-12.04-desktop-i386.iso
链接:https://pan.baidu.com/s/1fVtGD74s7-raClCYlmS87g
提取码:3622

选择网络桥接模式 4G

Ctrl + alt + T 打开终端
sudo apt-get update 升级安装包相关的命令,刷新可安装的软件列表(但是不做任何实际的安装动作)
sudo apt-get upgrade: 进行安装包的更新(软件版本的升级)

二、安装交叉编译器

(一)解压

复制 arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 到虚拟机
解压 tar xjvf arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

(二)配置

1.修改 全局配置文件

sudo vi /etc/profile
sudo vi/root/.bashrc

2个文件都在末尾添加 export PATH=$PATH:/home/ttmk/form_windows/arm-2011.03/bin/
按ESC退出编辑
输入 :wq 回车 保存并退出

输入“. /etc/profile”(点+空格+文件名),执行 profile 文件,使刚才的改动生效

2.安装32位兼容库

若此时还不能使用,需要安装32位兼容库
输入 sudo apt-get install ia32-libs

三、NFS服务器

(一)安装NFS软件包

vmuser@Linux-host ~$ sudo apt-get install nfs-kernel-server #安装 NFS 服务器端
vmuser@Linux-host ~$ sudo apt-get install nfs-common #安装 NFS 客户端

(二)添加 NFS 共享 目录

1.配置

sudo vi /etc/exports
末尾添加
/nfsroot *(rw,sync,no_root_squash)

2.新建文件夹

根目录下
sudo mkdir /nfsroot
sudo chmod -R 777 /nfsroot
sudo chown –R nobody /nfsroot

3.启动NFS服务

sudo /etc/init.d/nfs-kernel-server start

(三)固定IP地址

ubuntu中的设置内找到network打开。
在这里插入图片描述

(四)创建根文件目录

rootfs_imx28x.tar.bz2 复制到虚拟机
sudo cp /home/ttmk/form_windows/rootfs_imx28x.tar.bz2 /nfsroot/
cd /nfsroot
sudo tar xjvf rootfs_imx28x.tar.bz2

(五)开发板使用虚拟机根文件系统启动

1. u-boot 内按空格停止启动内核
2.修改 U-boot 的 bootargs 环境变量

,该变量保存了内核的启动参数。设置内核 NFS 启动
的参数一般格式为:
setenv bootargs root=/dev/nfs rw console= ( c o n s o l e c f g ) n f s r o o t = (consolecfg) nfsroot= (consolecfg)nfsroot=(serverip): ( r o o t p a t h ) i p = (rootpath) ip= (rootpath)ip=(ipaddr): ( s e r v e r i p ) : (serverip): (serverip):(gatewayip): ( n e t m a s k ) : (netmask): (netmask):(hostname)::off

根据上面的配置,我们的开发板设置为:
setenv bootargs ‘root=/dev/nfs rw console=ttyAM0,115200n8 nfsroot=192.168.31.206:/nfsroot/
rootfs ip=192.168.31.205:192.168.31.206:192.168.31.1:255.255.255.0:ttmk:eth0:off mem=64M’

3.保存配置重启

在这里插入图片描述

(六)恢复为本地启动

在这里插入图片描述

四、安装 tslib1.4

(一)准备工作

$ sudo apt-get install autoconf
$ sudo apt-get install automake
$ sudo apt-get install libtool

(二)解压/安装

tar -zxvf tslib-1.4.tar.gz

$ cd tslib
$ ./autogen.sh
$./configure --prefix=/home/ttmk/myapp/tslib --host=arm-none-linux-gnueabi ac_cv_func_malloc_0_nonnull=yes

(–prefix 指定安装路径,用户可以自行指定 tslib 的安装目录。
–host 指定交叉编译器,如果交叉编译器是 arm-none-linux-guneabi-gcc,则指定
arm-none-linux-guneabi。)

make

make install

(三)配置

安装成功后在指定的安装目录下出现四个文件夹
在这里插入图片描述

vi ts.conf
然后去掉第二行的注释
在这里插入图片描述

(四)移植到开发板

cp -r /home/ttmk/myapp/tslib /nfsroot/rootfs/usr/local/tslib

(五)设置开发板环境

修改开发板根目录的 /etc/profile

末尾加入
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE= T S L I B R O O T / e t c / t s . c o n f e x p o r t T S L I B P L U G I N D I R = TSLIB_ROOT/etc/ts.conf export TSLIB_PLUGINDIR= TSLIBROOT/etc/ts.confexportTSLIBPLUGINDIR=TSLIB_ROOT/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export QWS_MOUSE_PROTO=/dev/input/event0
export LD_LIBRARY_PATH= L D L I B R A R Y P A T H : LD_LIBRARY_PATH: LDLIBRARYPATH:TSLIB_ROOT/lib

(六)测试校准

开发板下运行
cd /usr/local/tslib/bin
#./ts_calibrate

五、编译QT

(一)解压QT安装包

tar -zxvf qt-everywhere-opensource-src-4.7.3.tar.gz

(二)安装G++

apt-get install g++

(三)编译QT

1.创建build-qt.sh

#!/bin/sh
./configure -prefix /home/ttmk/myapp/qt-4.7.3-arm -opensource -confirm-license -release -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -no-qt3support -depths 16,18,24,32 -no-qvfb -no-svg -no-cups -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-openssl -shared -no-largefile -no-accessibility -no-xrender -no-webkit -no-gtkstyle -nomake examples -nomake doce -nomake demos -plugin-mouse-pc -plugin-mouse-tslib -little-endian -plugin-mouse-linuxtp -fast -lrt -qt-mouse-tslib -D QT_NO_QWS_CURSOR -D QT_QWS_CLIENTBLIT -I /home/ttmk/myapp/tslib/include -L /home/ttmk/myapp/tslib/lib

2.运行build-qt.sh

chmod 777 build-qt.sh
./build-qt.sh


如果出现如下错误,
The tslib functionality test failed!

   You might need to modify the include and library search paths by editingQMAKE_INCDIR and QMAKE_LIBDIR in/work/nfs_root/qt-everywhere-opensource-src-4.7.0/mkspecs/qws/linux-arm-g++

可能是arm-none-linux-gnueabi-gcc没有找到 ,检查环境变量是否正确

3.make

时间比较久

若出现错误:
`swpb %al,%r13b,[%rbx]’

build-qt.sh中 arm改成armv7

如果出现错误:
usr/bin/ld: cannot find -lxx

输入以下命令安装库来解决
apt-get install libxx-dev

其中xx可以被替换为其他字符

详细解决方法请参考博文(https://blog.csdn.net/lyc_daniel/article/details/11149123)解决

4.make install

安装完成后,在安装目录下出现qt-4.7.3-arm ,

在qt-4.7.3-arm/lib下file libQtCore.so.4.7.3 如果是intel80386平台的,则说明安装出错,可能是make错误后又重新make导致的,建议删除整个解压包重头开始安装。

如果是ARM的则没问题。

在这里插入图片描述

在开发板新建usr/local/qt-4.7.3-arm目录, 将lib 和 plugins移植到开发板usr/local/qt-4.7.3-arm中

修改开发板的etc/profile文件
在末尾添加
export QTDIR=/usr/local/qt-4.7.3-arm
export LD_LIBRARY_PATH= Q T D I R / l i b : QTDIR/lib: QTDIR/lib:QTDIR/plugins/imageformats: L D L I B R A R Y P A T H e x p o r t Q T P L U G I N P A T H = LD_LIBRARY_PATH export QT_PLUGIN_PATH= LDLIBRARYPATHexportQTPLUGINPATH=QTDIR/plugins /* 指定 Qt 插件路径 /
export QT_QWS_FONTDIR=$QTDIR/lib/fonts /
指定 Qt 字体路径 */

六、安装QT SDK

(一)安装

sudo apt-get install qt-sdk

(二)配置

虚拟机下修改 ~/.bashrc 文件 ,末尾添加
alias qmake-arm=/home/ttmk/myapp/qt-4.7.3-arm/bin/qmake
然后执行 source ~/.bashrc , 使修改生效

(三)测试

使用
$ qmake-qt4 -v
$ qmake-arm -v
测试qmake是否配置正常

七、使用Qt Creator

八、QT ARM编译测试

(一)用Qt Creator建立工程,项目在虚拟机测试完成后,提取工程文件出来

(二)使用qmake-arm 来编译工程

在这里插入图片描述

如果在make的时候出现 /usr/bin/ld: cannot find -lQtCore

那么很有可能你的qt-4.7.3-arm编译的有问题,用file 命令检查编译出来的库是否是ARM的

(三)移植到开发板运行

将编译出来的可执行文件,cp到开发板

在这里插入图片描述

在开发板上运行
export QWS_MOUSE_PROTO=tslib:/dev/input/event0指定鼠标设备
再运行cat /dev/input/event0 | hexdump ,点击屏幕,测试鼠标设备,看看串口是否有数据输出
按CTRL+Z 停止测试

输入指令 ./hello -qws 运行程序。-qws 指明这个 Qt 程序同时作为一个窗口服务器运行,在目标板上启动的第一个 Qt 程序应使用此参数启动。

启动后开发板如图所示
在这里插入图片描述


http://www.ppmy.cn/news/547927.html

相关文章

lm283_HMC283LM1_10

HMC283LM1 v04.1201 Typical Applications The HMC283LM1 is ideal for: • Millimeterwave Point-to-Point Radios • LMDS • SATCOM 11 LINEAR & POWER AMPLIFIERS - SMT Functional Diagram D E U IN T N O T C C S U I D D O R P Features SMT mmWave Package Psat Ou…

Verilog——串行四位加法器和超前四位加法器74HC283

Verilog——串行四位加法器和超前四位加法器74HC283 一. 串行四位加法器设计思路1. 一位全加器1.1原理1.2代码实现1.2.1设计模块1.2.2测试模块 1.3 仿真结果 2.用四个一位全加器串行成四位加法器2.1原理2.2代码2.2.1设计模块2.2.2测试模块 2.3仿真结果 二.超前四位加法器74HC28…

LeetCode:283. 移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: nums [0] 输出: …

LeetCode 283题解

AC 通过 public class LeetCode283 {public void moveZeroes(int[] nums) {int k 0; // nums[0-k] 存储的是 前面k 个不等于 0 的数for(int i 0; i < nums.length; i){if(nums[i]!0){if (k ! i) {// 0 1 2 0 当遍历 到1 时 k 还是0 0 1 交换后是 1 0 此时 k 1int tmp n…

lm283_BP283X 最小输入输出压差和OVP电压的关系

本程序旨在计算当选定开路输出电压时&#xff0c;计算出可以保证系统能 正常保护 的 最小输入输出压差 &#xff1b;(输入电压为Bulk 正常带载输出电压 Vo 150 V 正常带载输出电流 Io 120 mA 输入Bulk电容最大值 Vindc_max 373 V 系统工作频率 Fosc 90 KHz 开路电压 Vovp 200 V…

Imx283 Uboot2017+Linux3/4/5系统内核移植

Imx283 Uboot2017Linux3/4/5系统内核移植 前言 用的周立功的EasyArm283&#xff0c;实习的时候买的&#xff0c;一直没咋弄&#xff0c;前几天突然看到了想玩一下&#xff08;其实最近一直再画板子&#xff0c;想玩一下软件了哈哈&#xff09;&#xff0c;感觉2.34的内核有点…

NAT穿透详解

1.引言 ​ 要实现两台内网主机进行通信&#xff0c;常规的方案如下&#xff1a; 客户端A<------------>服务端<------------>客户端B​ 服务端提供转发监听服务&#xff0c;需要有固定公网IP和端口。客户端A和B分别连接服务端&#xff0c;数据通过服务端进行转发…

lm283_飞利浦LED泛光灯具 BVP283 LED户外照明灯具350W 超高功率泛光灯

飞利浦LED泛光灯具 LED户外照明灯具 BVP283 350W 超高功率泛光灯飞利浦LED泛光灯具 LED户外照明灯具 BVP283 350W 超高功率泛光灯飞利浦LED泛光灯具 LED户外照明灯具 BVP283 350W 超高功率泛光灯 飞利浦超值经济型LED泛光照明方案 Tango G2 LED Extension BVP282:16000lm/20000…