[ARM Linux] [Qt] 移植Qt程序到ARM Linux上 (包括如何构建专业的PDA界面、phone界面)

qt把虚拟键盘部署到arm开发板上(imx6ull)(键盘显示不全) home/book/qtstudy/qt-everywhere-src-5.15.2/arm-qt/bin/qmake,其中就是在qt-everywhere-src-5.15.2文件夹下,arm-qt是我编译qt源码指定的文件夹,每个人的不同需要根据具体情况看。arm-qt/plugins/platforminputcontexts(arm-qt就是我们之前安装qt的时候生成的文件夹。然后把这个库文件复制到我们开发板的安装qt的目录下。最后在qt的main函数时候使能该键盘的环境变量。 阅读详情

http://blogold.chinaunix.net/u2/86537/showart_1666271.html

qtopia-core-opensource-src-4.3.5.tar.gz 在up-netarm2410-s上的移植

  我的目标平台是博创的up-netarm s3c2410-s,
  内核:uname -a 显示 Linux (none) 2.4.18-rmk7-pxa1 #251 Fri Sep 22 15:11:45 CST 2006 armv4l unknown
  虚拟机环境:red hat linux 9  version :2.4.20  硬件环境:AMD 双核 2G SDRAM
 下面是Qtopia Core 4移植过程:
        1.  安装交叉编译器
博创光盘 2410-s\Linux V7.2\gui\Qt\tools 下提供。不要用cross-2.95.3,Qtopia Core 4指明要3.2以上的版本。
tar xjvf linux-gcc-3.4.1.tar.bz2 -C /
设置交叉编译的环境变量:
将export PATH=/usr/local/arm/3.4.1/bin:$PATH加入到/root/.bash_profile文件中
source /root/.bash_profile
[root@localhost /]# arm-linux-gcc  -v
Reading specs from 
/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs
Configured with: 
/work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.
3.2/gcc-3.4.1/configure --target=arm-linux 
--host=i686-host_pc-linux-gnu 
--prefix=/usr/local/arm/3.4.1 
--with-headers=/usr/local/arm/3.4.1/arm-linux/include 
--with-local-prefix=/usr/local/arm/3.4.1/arm-linux 
--disable-nls --enable-threads=posix 
--enable-symvers=gnu --enable-__cxa_atexit 
--enable-languages=c,c++ --enable-shared --enable-c99 
--enable-long-long
Thread model: posix
gcc version 3.4.1

        2.  下载Qtopia Core 4的源代码
从Trolltech公司主页上去下载qtopia-core-opensource-src-4.3.5.tar.gz
http://www.qtcn.org/download/
ftp://ftp.trolltech.com/
解压缩
[root@localhost /]# tar zxvf qtopia-core-opensource-src-4.3.5.tar.gz

下一步是编译,先别忙,源代码有需要该的地方,因为基本上所有的开发板都是带触摸屏的,所以要让源代码支持,实际上就是加上2个宏定义,很简单的。
打开qtopia-core-opensource-src-4.3.3\src\gui\embedded\qmouselinuxtp_qws.h
加上这2行:#define QT_QWS_IPAQ
           #define QT_QWS_IPAQ_RAW
还有需要注意的地方是:看一下 qmouselinuxtp_qws.cpp /dev/h3600_tsraw, 是不是你板子上的驱动文件名字,如果不是改成一样就可以了。

[root@localhost /]# cd qtopia-core-opensource-src-4.3.5
[root@localhost qtopia-core-opensource-src-4.3.5]#

#./configure -embedded arm -xplatform qws/linux-arm-g++ -depths 4,8,12,16 -no-qt3support -little-endian  -prefix /mnt/nfs/Qtopia-new

在配置过程中,需要选择"yes"
稍微等待一下,然后
# gmake
可以去干点别的事了,时间会比较久,这个时间和机器配置和上面的configure有关系的,建议机器的配置高一点,这样可以节省很多时间。
注意不是make,configure结束后有提示
# gmake install
需root 权限,注意不是make install.编译完成后,软件会安装在 /usr/local/Trolltech/Qtopia-Core-4.3.5-arm/
目录结构如下:
bin  demos  doc  examples  include  lib  mkspecs  plugins  translations

下面是qt-embedded-linux-opensource-src-4.4.0.tar.gz编译后的结果,基本差不多,好像qt-embedded-linux-opensource-src-4.4.0就是把qtopia-core-opensource-src改了一个名字(猜的,不知对否?)

[root@localhost QtEmbedded-4.4.0-arm]# ls
bin  demos  examples  include  lib  mkspecs  plugins  translations
将文件移到目标平台,我是通过nfs mount到/mnt/yaffs目录下
因为QT的共享库很大,所以在使用nfs服务的时候最好是能给他指定大点的缓冲区
mount -t nfs -o nolock,rsize=4096,wsize=4096 192.168.0.108:/mnt/yaffs/Qtopia /mnt/yaffs/Qtopia-new
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/yaffs/Qtopia-new/lib/
cd /mnt/yaffs/Qtopia-new/examples/mainwindows/application
./application -qws
注意软链接。如提示缺失libstdc++.so.6,libgcc_s.so.*等库文件,可从/usr/local/arm/3.4.1/arm-linux/lib复制过来。 
下面的错误是因为需要/tmp/qtembedded-0/QtEmbedded-0,在博创提供的yaffs下已经存在,而自己无法创建。所以,这里借用了Qtopia/tmp,自己的Qtopia改名为Qtopia-new。
提示权限不够,应该是文件系统的原因。
QWSServerSocket::init: Permission denied
QWSServerSocket: could not bind to file /tmp/qtembedded-0/QtEmbedded-0
QWSServerPrivate::initServer: server socket not listening: Illegal seek
Failed to bind to /tmp/qtembedded-0/QtEmbedded-0

目前屏幕能够出现应用程序界面,但还是提示一些错误
[/mnt/yaffs/Qtopia-new/examples/tutorial/t1]./t1 -qws
QWSServerSocket::init: Cannot allocate memory
QWSServerSocket: could not bind to file /tmp/.qt_soundserver-0
目前触摸屏,鼠标,键盘等还未加入或测试,仍需要进一步研究。

下面的文字可以参照,由于作者的根文件系统和应用程序文件系统已经做好,写权限受限,因此,没有继续测试,应该是没问题的。
步骤三:移植
       只要把刚才编译的库文件,字体放到文件系统里面就可以了
       具体操作:在文件系统下新建一个文件夹,我是放到已经有的一个文件夹/opt/qt/下的
       #cd opt
       #mkdir qt
       把/usr/local/Trolltech/Qtopia Core-4.3.3-arm/下的lib文件夹复制到opt/qt/下,复制前看下大小,你的flash是否放得下,我得flash是64M的,没问题。再在opt/qt下建立一个文件夹 qtopia,可以把你的应用程序放到这个里面。
       QT运行环境的设置,建一个脚本文件qtopia_setup,放到/bin下吧。
      # vi qtopia_setup 打开后加入下面的配置信息
       export set HOME=/root
export set QTDIR=/opt/qt
export set QPEDIR=/opt/qtopia
export set KDEDIR=/opt/qt
export set QWS_KEYBOARD="USB:/dev/input/event1"
export set QWS_MOUSE_PROTO="linuxtp:/dev/h3600_tsraw"
export set PATH=$QPEDIR/bin:$PATH
export QWS_DISPLAY="LinuxFb:mmWidth35:mmHeight45:0"
export QWS_SIZE=320x240
export set LD_LIBRARY_PATH=$PATH:$QTDIR/lib:$QPEDIR/lib

如果要开机运行QT程序的话,在上面的末尾加上
$QPEDIR/qttest -qws &
把qttest这个程序放在/opt/qt/qtopia下,可以从/usr/local/Trolltech/Qtopia Core-4.3.3-arm 的demo下随便拷一个过来,改个名字就可以了。
然后,在/etc/init.d/rcS里面加上这句:/bin/qtopia_setup
Linux启动的时候会自动运行rcs
步骤四:运行    
把新的文件系统发放到开发板上,上电就可以运行了,但不幸的是有提示错误。
在/usr/local/Trolltech/Qtopia Core-4.3.3-arm/lib/fonts 找不到字体库,解决办法很简单,在你的板子上建立这个文件夹,然后把/opt/qt/lib/fonts下的字体文件移动到你建的文件下:/usr/local/Trolltech/Qtopia Core-4.3.3-arm/lib/fonts 下就可以了。
再重启板子,或直接运行/bin/qtopia,这下就可以看到你的图形界面了吧 ,^_^!
界面上有个鼠标指针,程序中可以把它搞掉,你再点点触摸屏,可能会点不准,那是因为你还没有校准触摸屏,程序运行的时候,也会提示找不到/etc/下的校正参数,所以你需要下载一个校正程序来用 如:tslib-1.3.tar.bz2,这部分我还没搞定,有时间再弄。


如何构建专业的PDA界面、phone界面,也需要研究。

此文档主要参照
http://blog.chinaunix.net/u2/65122/showart.php?id=1083177
http://blog.youkuaiyun.com/meteor1516/archive/2008/05/03/2365540.aspx

使用Qt Creator远程部署Linux设备的应用程序 首先,需要在Qt Creator中添加远程Linux设备作为构建和部署目标。在“选项”菜单中选择“设备”,然后点击“添加新设备”。在项目管理器中,右键单击该项目并选择“添加库-> Qt 远程部署” 以创建一个新的远程部署配置文件。在开发嵌入式系统或在远程Linux设备上运行应用程序时,使用Qt Creator的远程部署功能可以大大简化部署过程。单击构建按钮进行构建,在构建成功后,单击“部署到远程主机”按钮。使用以上步骤并运行这个简单示例程序,可以将应用程序成功部署到远程Linux设备上。 阅读详情

相关推荐

Qt软键盘linux下实现,可以移植到ARM

在linux下开发的Qt软件盘,支持中文,纯代码实现,可以交叉编译移植到ARM上

Qt开始学习的一些问题

1、需要将qmake、moc和qvfb的路径加入到系统的环境变量: qmake、moc:export PATH=$PATH:/usr/local/Trolltech/QtEmbedded-4.6.1-i386/bin qvfb:export PATH=$PATH:/opt/QtEmbedded-4.4.3-i386/sdk/qtopiacore/host/bin 2、遇到错误:Qt ...

weixin_33827731的博客 133

告别Windows!Oculus Quest 2在Mac M1上的串流实战(scrcpy+SideQuest避坑指南)

本文为Mac M1用户提供了Oculus Quest 2在macOS上实现高清低延迟串流的实战指南。通过使用开源工具scrcpy和SideQuest,绕开官方限制,详细讲解了从环境准备、无线调试到画质与延迟优化的完整步骤,重点解决了Apple Silicon芯片Mac的连接与性能问题,助你告别Windows依赖。

weixin_29224309的博客 309

自己总结的用于ARM的Linux-QT动态库的移植

方法与网上介绍的Linux QT下实现的建立动态库一致,只需要,将代码中部分独立的文件单独编译为库文件即可 详细步骤如下所示 首先进入Linux虚拟机打开QT creator File —> New C++ Librarry 命名需要新建动态库的名称及创建路径 QT库必须选择包含QtCore,如果库文件还有UI界面还需要包含QtGUI,其他Qt头文件同样根据库的使用进行包含。 定义生...

u010584870的博客 1369

网安保研避坑指南:中科院信工所各研究室真实体验与导师选择建议

本文为中科院信工所网络安全保研生提供深度指南,详细解析了信工所六个研究室的研究方向、真实氛围与导师选择策略。文章特别强调,选择导师是决定研究生体验的关键,并提供了针对各研究室的避坑建议与实战调研方法,帮助学生做出明智选择。

weixin_29210727的博客 1590

2025最新正版Autodesk 3ds Max 2022安装教程:从下载到中文环境配置全流程解析

Autodesk 3ds Max 2022是一款专业的三维建模、动画和渲染软件,广泛应用于影视制作、游戏开发、建筑可视化等领域。

waicsdn_haha的博客 1万+

qt移植到arm上的过程

1.下载Qt源码包 qt-everywhere-opensource-src-4.7.3.tar.gz; 2.解压 tar -xvfz qt-everywhere-opensource-src-4.7.3.tar.gz 3.修改文件qt-everywhere-opensource-src-4.7.3/mkspecs/qws/linux-arm-g++/qmake.conf    QMAKE_

Peter的专栏 1619

Raspberry Pi Pico SDK开发-Timer-定时

RP2040 由 Raspberry Pi 设计,具有双核 Arm Cortex-M0+ 处理器和 264KB 内部 RAM,并支持高达 16MB 的片外闪存。 广泛的灵活 I/O 选项包括 I2C、SPI 和独特的可编程 I/O (PIO)。 本实例将演示如何使用Timer的定时功能。

视觉与物联智能 2041

在ARM64 linux平台运行QT程序

以qt5.12.9,单片机为I.MX8QM为例本文将工具链放在ubuntu的/opt/路径下。

DemoFY的博客 9288

QGis软件 —— 5、QGis增加线,并对线进行绘制、旋转、缩放、移动等基本操作

QGis软件 —— 5、QGis增加线,并对线进行绘制、旋转、缩放、移动等基本操作

8246

利用恒源云在云端租用GPU服务器训练YOLOv10模型(包括Linux系统命令讲解)

为当涉及到深度学习的训练任务时,GPU的计算能力是不可或缺的。相对于传统的中央处理器(CPU),图形处理器(GPU)具有更强大的并行计算能力,能够显著加速深度学习模型的训练过程。深度学习算法通常涉及大量的矩阵运算和张量操作,而GPU的并行计算架构使得它们能够高效地执行这些计算,从而加速模型训练的速度。恒源云是一个经济高效的云计算平台,您可以通过恒源云的控制台或者命令行界面来管理实例、上传和下载数据、执行训练任务等。

Snu77的博客 1891

linux-2.6.32在mini2440开发板上移植(22)之qtopia4.4.3手机版移植(english version)

qtopia4.4.3手机版在mini2440上的移植 编者:原来也移植过QT,对这个还是总结了些经验的。因为mini2440开发板自带的是PDA版本的QTOPIA,所以我决定移植一个手机版本试试。为什么选择这个版本的,其实我没有进行特意选择,在百度上搜了下,发下这个版本有人在mini2440上成功移植,也就是说有案列,这样可以参考人家的案例,在出问题时候,解决能快点。因为这个必定没作为项目开发

铸剑娃的专栏 2765

Arduino IDE 开发ESP32-S3编译报错 Sketch too big?一步步解决!

解决方法很简单,只需要一步步来修改 Arduino IDE 的配置即可。确保你已经打开 Arduino IDE 并加载了你的 ESP32 代码。如果你也遇到了这个问题,按这个方法试试,应该就能顺利搞定!,如果你需要 OTA,就不能选这个方案,需要换成。,但我回头一想,我这块 ESP32-S3 可是。,按理说存储空间应该足够啊,那这到底是咋回事?,默认方案就装不下了,这时就需要选择更大的。按钮,这次应该不会报错了!,然后在下拉菜单中找到。,可以支持更大的固件。如果你的固件体积超过。,就能正常编译上传。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2136

linux 移植qt,Linux下移植QT(2)---移植QT

准备:ubantu12.04 内核 3.0.8(最好用同样的内核,3.2.0时没成功)交叉编译工具:arm-cortex_a8-linux-gnueabi-gcc-4.4.6QT版本5.4.2链接: https://pan.baidu.com/s/1aKldfYu8E4xCPfbNv2rz2A 提取码: 9r4m步骤1:$ mkdir Qt_arm_2 (我的存放压缩包目录)将 qt-...

weixin_39603505的博客 521

注意力机制模块:二次创新:CBAM 与 ECA 融合形成 CECA 模块,参数量减少 40%

文章摘要: 本文提出一种轻量化注意力模块CECA,通过融合CBAM和ECA的优势解决模型部署中的精度与速度矛盾。CBAM虽具备通道和空间双重注意力,但参数量大;ECA轻量但缺乏空间注意力。CECA采用ECA的一维卷积替换CBAM的通道注意力部分,保留其空间注意力模块,在保持双注意力能力的同时减少40%参数量。实验表明该方案在边缘设备部署中能维持精度并提升推理速度,特别适用于YOLO等目标检测模型的轻量化改进。文章详细拆解了架构设计、代码实现及参数量优化原理,为算法工程师和嵌入式开发者提供了实用解决方案。

ZXSXJ的博客 237

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Arm-linux下QT使用键盘

一.QT 对键盘的支持 QT 4.6 以后的版本是内置对LInux input event 键盘的支持。因此在 configure的的配置选择已经没有相关选项 而Qt 4.6 以前的版本是有类似于 -qt-kbd-tty,-qt-kbd-usb,  -qt-kbd-linuxinput 支持,但是不能在4.6的configure 脚本加入这个选项,加入这个选项反而会选成编译时的段错误。

蓝点工坊的技术博客 3238

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Qt5.12.2交叉编译并移植程序到ARM过程记录

交叉编译:在系统A中编译出在要系统B中运行的环境、程序。 编译工具:x9-gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf 1、将编译工具拷贝到 /opt 文件夹。 2、下载Qt源代码,解压。 3、进入解压后的 /qtbase/mkspecs 文件夹,这是编译配置的文件夹,发现没有名称为gnueabihf的,新建一个文件夹,名称为 linux-arm-gnueabihf-g++,到其他文件夹拷贝 qmake.conf、qplatformdefs.

友善啊,朋友的博客 3766

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Qt5虚拟键盘移植

Qt5 虚拟键盘移植Qt5 虚拟键盘移植1 移植官方库2 移植第三方库3 仍然需要改进的地方 Qt5 虚拟键盘移植 Qt 在移植到 arm 之后,是天然支持触摸的(模拟鼠标),但是却没有自带虚拟键盘。明明就是为了摆脱麻烦的鼠标、键盘外设,才用的触摸屏,难不成还要加一个键盘? 那肯定不行,虚拟键盘移植走起。 1 移植官方库 移植官方的 qtvirtualkeyboard,不得不说,很麻烦。该模块依赖与 Qt 的 quick 和 svg 模块,光是这两个模块,我就研究了半天,无果。 参考文章: s5p4

LuoLewin的博客 3137

基于qt的嵌入式平台输入法:SYSZUXpinyin移植到arm后,UDP接收端中文乱码 本地中文乱码 解决...

SYSZUXpinyin输入法完全是用qt搭建的,移植到arm平台后,可以弹出软键盘,本人已成功。移植过程可以参考http://blog.chinaunix.net/uid-24219701-id-3077611.html这里,等有时间洒家写个移植的小细节。这里主要讲,移植后整个程序的文本、字符编码方式怎么调整才能避免乱码。 我的环境是在Fedora14下,默认的编码方式是UTF-8...

分享技术干货和灵感 378

Arm 烧录 根文件系统 +移植qt图形化界面

Arm 烧录 根文件系统 +移植qt图形化界面Arm 烧录 根文件系统 移植qt图形化界面 移植根文件系统 qt移植 效果展示移植根文件系统平台:友善6140 工具:arm-linux-gcc 4.5.1 http://download.youkuaiyun.com/detail/xiaoxiaodongshige/9577171 maketool: http://download.youkuaiyun.com/detai

xiaoxiaodongshige的博客 2131

QT笔记--嵌入式QT交叉编译与移植(含OpenGL ES2)

本文记录了QT并移植到开发板的过程,并在虚拟机上用QTcreater 开发程序,到开发板上运行。其中重点解决了一些过程中的BUG和坑。

szembed的博客 4390

什么是Qtopia

Qtopia 是基于 Qt 开发的一个软件平台,主要用于采用嵌入式 Linux 系统的 PDA 或移动电话, Qtopia 提供了窗口操作系统、游戏和多媒体、工作辅助应用程序、同步框架、 PIM 应用程序、 Internet 应用程序、 开发环境、输入法、 Java 集成、本地化支持、个性化选项以及无线支持等,用于缩短制造商的开发周期。 TrollTech 公司在 08 年被 Nokia

骨头和狗的博客 3420

ARM Linux QT虚拟键盘的系列问题

本文解决以下问题: (1)QT自身不带有虚拟键盘;(2)QT虚拟键盘部署方法;(3)QT虚拟键盘遮挡输入框;(4)QT虚拟键盘全屏不显示问题。

小杜的专栏 7190

Ubuntu下交叉编译Qt库并移植至ARM板上

环境:Ubuntu-14.04交叉编译器:arm-linux-gnueabi-4.5.1qt版本:qt-everywhere-opensource-src-5.6.2说明:交叉编译qt库前,若要对触摸屏支持,则需先交叉编译安装tslib。可参考上一篇【Ubuntu下交叉编译tslib库并移植到ARM板上】一、交叉编译qt库下载源码包,解压,进入源码目录$ cd qt-everywhere-open...

曾哥哥的博客 1万+

qt远程linux,Qt Creator部署到远程Linux目标

我使用Buildroot为目标BeagleBoard构建Qt。我将Qt Creator指向Buildroot生成的qmake文件,并将Buildroot的工具链添加到Qt Creator'Tools'菜单下的Build & Run配置选项中,在Qt Creator的'Tools'菜单下添加了一个'Generice Linux Device',并使用了测试在该菜单中配置工具来测试与设备的连接...

weixin_32516009的博客 487

嵌入式QT软键盘

最近搞了一个组织细胞脱水机项目,当然,对于国内的项目都是仿来仿去的,我们也不例外,开启被仿机器后,第一个看到的界面就是用户登录界面,需要输入中文,作为一个程序员,我的第一反应就是我需要采用什么用的框架来做这个界面,方向是多方面的,肯定会选择自己熟悉的一个,自然而然,我选择了QT来做界面,但是QT并没有像安卓,IOS,C#等支持得那么完美,毕竟做的人不是那么多,所以相对不是那么完美。我们没有鼠标键盘

BorntoX的博客 1万+
上一篇: [ARM Linux] Qt: Qtopia 2.2 桌面和程序 在ARM-LINUX上发布
下一篇: [Solved] [ARM Linux] [Qt] $./hello -qws Not Success on ARM Linux: lack of unix module support
Dooit
博客等级 码龄18年 11粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值