
嵌入式linux
嵌入式linux应用中的问题分析和解决方法
大帅marshal
注重技术落地的应用型工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
嵌入式Linux系统uart串口编程详解及实例分析
近来在一个项目开发中,在一个新的硬件平台下的linux系统,使用uart串口进行通讯,结果通讯不畅。代码是以前在其他硬件平台下验证完全没问题的代码,为什么会出问题呢?经过各方面查资料,最终定位为uart串口初始化的问题。在linux系统下,串口的初始化比较复杂,需要设置的东西比较多,如果有一些默认的配置与硬件和应用程序不匹配,而又没有重新配置,就会导致通讯失败的情况。经过对linux系统下串口初始化的进行了整理梳理,最终解决了问题。记录这批位置可以为其他小伙伴提供参考。一、termios...原创 2020-07-30 12:29:25 · 3742 阅读 · 0 评论 -
嵌入式linux系统qt界面程序隐藏鼠标方法,踩坑过程分析
问题描述: 近来基于qt crearor开发了一个嵌入式linux程序,部署在一个带有触摸屏的嵌入式平台里,设置了开机自启动后,界面上还有鼠标,影响了美观,希望能够把鼠标去掉。解决步骤一: 首先查看qt开发环境里,窗口的属性,发现有一项cursor,如下图所示。点击后边的选项,是鼠标的设置,选择了Blank,在上位机上进行调试,发现界面上鼠标真的没有...原创 2020-02-15 11:22:16 · 2874 阅读 · 0 评论 -
嵌入式平台下开机自启动qt程序后串口控制台无法使用的解决办法
问题描述: 采用qt开发的嵌入式可视化程序,部署到嵌入式平台上之后,设置了开机自启动之后,可以正常启动,但是启动之后串口控制台就不能用了。程序在嵌入式平台中,放置到了/etc/rc.d/init.d/目录下,并在/etc/init.d/rcS文件中添加了如下代码。. setqt4env /etc/rc.d/i...原创 2020-02-14 22:43:31 · 880 阅读 · 0 评论 -
如何在ubuntu 系统中交叉编译QT库
在使用qt进行嵌入式程序开发时,需要先编译qt库,首先需要获得qt库的源文件,本文以tiny6410开发板为例进行说明,我用的是qt-everywhere-opensource-src-4.7.0.tar.gz。1、解压源文件 首先将上述源文件复制到计算机中,可以放到任意位置,我这里放到/opt文件夹下,然后在终端中进入到源码所在的文件夹,执行下面命令t...原创 2020-02-14 14:10:48 · 3613 阅读 · 1 评论 -
在ubuntu系统下安装arm--tiny6410交叉编译工具链
本文以友善之臂的Tiny6410开发板为例,在ubuntu系统中安装交叉编译工具链,它的作用是在计算机上编译出可以在arm平台上运行的内核、驱动模块、应用程序等。 在这里我使用的是友善之臂提供的arm-linux-gcc-4.5.1源码。1、解压源文件 首先将arm-linux-gcc-4.5.1.tgz复制到计算机中,可以复制到任意个文件...原创 2020-02-14 11:29:26 · 2324 阅读 · 0 评论 -
在ubuntu下搭建Qt Creator的arm交叉编译环境
Qt Creator是跨平台的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。使用Qt Creator进行嵌入式程序开发是一个很好的选择。所以今天我们来学习一下如何搭建基于Qt Creator的开...原创 2020-02-14 10:30:49 · 7753 阅读 · 0 评论 -
如何在ubuntu系统中搭建nfs服务器
摘要:NFS,Network file system,即网络文件系统,它允许网络中的计算机共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NF...转载 2020-02-09 16:03:51 · 672 阅读 · 0 评论 -
S3C6410开发板adc驱动代码分析及测试代码分析
在本文中,我们对S3C6410开发板adc驱动代码的实现过程进行分析,然后通过一个实例对adc功能进行测试。在本文的资源中包含了设备驱动的源码和测试的源码。一、设备驱动源码分析 adc的设备驱动主要实现了模块的初始化、模块的卸载、设备打开、设备关闭、设备读取的功能。1、模块初始化 模块的初始化的源码如下所示。static int _...原创 2020-01-31 20:36:59 · 498 阅读 · 0 评论 -
S3C6410开发板按键驱动代码分析及测试代码分析
在本文中,我们对S3C6410开发板按键驱动代码的实现过程进行分析,然后通过一个实例对按键功能进行测试。在本文的资源中包含了设备驱动的源码和测试的源码。一、设备驱动源码分析 按键的设备驱动主要实现了模块的初始化、模块的卸载、设备打开、设备关闭、设备读取、设备阻塞功能。1、模块初始化 模块的初始化的源码如下所示。static int _...原创 2020-01-31 19:04:06 · 832 阅读 · 0 评论 -
S3C6410开发板LED驱动代码分析及测试代码分析
在本文中,我们对S3C6410开发板LED驱动代码的实现过程进行分析,然后通过一个实例对LED进行控制。在本文的资源中包含了设备驱动的源码和测试的源码。一、设备驱动源码分析 设备驱动主要实现了模块的初始化、模块的卸载、io模块操作的功能。1、模块初始化 模块的初始化的源码如下所示。static int __init dev_init...原创 2020-01-30 23:31:43 · 349 阅读 · 0 评论 -
字符设备驱动例程分析(附源码)
在linux系统应用中,设备驱动程序编写是比较困难的,初学者往往摸不着头绪。在这片文章中,我给大家讲解一个实例,带大家进行一步一步的分析字符设备驱动程序的编写方法。1、功能实现 首先我们先来介绍一下,我们用这个实例来做什么。我们做的这个驱动程序的作用是将用户空间的一块1KByte的内存模拟成一个设备,并设计了这个设备的打开、关闭、读写等功能的驱动,并用一个应用程...原创 2020-01-29 23:15:01 · 1164 阅读 · 0 评论 -
linux系统是如何通过相同的系统调用函数实现对不同设备进行操作的
在linux系统中,可以采用open()、read()、write()函数对不同的设备进行访问。比如我们可以用read()来读取一个c文件中的数据,也可以用read()来读取串口发送来的数据。然而c文件和串口的结构显然是不同的,linux是如何通过同一个read()函数来实现不同类型的设备的读取的呢? 首先我们来看一下linux系统设备访问的机制,我们以最常用的字符...原创 2020-01-26 10:22:55 · 378 阅读 · 0 评论 -
如何将内核模块编译进linux内核
linux系统的内核模块,在编好之后,可以通过insmod命令安装到系统中,也可以将模块直接编译进内核。下面我们来做一个实例,实例的目的是编写一个简单的内核模块,然后把该模块编译进S3C6410开发板的内核中,并运行。1、内核模块的代码hello.c如下所示。#include <linux/module.h>#include <linux/init.h...原创 2020-01-25 18:01:35 · 2235 阅读 · 0 评论 -
tftp timeout 的原因及解决办法
在嵌入式linux应用中,经常会遇到tftp timeout的问题,这个问题的原因可能是多种原因。1、硬件连接不可靠。 首先,检查网线的连接是否牢固,并且用ping命令看是否能够ping通,比如tftp服务器的IP是192.168.0.2,命令如下ping 192.168.0.2如果能ping通说明硬件连接正常。2、服务器防火墙未关闭 防火墙开启会导致...原创 2020-01-24 19:24:14 · 32009 阅读 · 0 评论 -
linux开发板执行程序提示/bin/sh: Permission denied的解决办法
在使用S3C6410开发板时,编写了一个简单的hello.c程序,如下所示。 #include <stdio.h> int main() { printf("Hello!\n"); return 0; }采用下面的交叉编译命令对程序进行编译。arm-linux-gcc hello.c -o hello生成...原创 2020-01-24 19:10:35 · 20892 阅读 · 1 评论 -
编译嵌入式linux内核的若干问题
编译嵌入式linux内核与编译基于X86的内核有很多不同的地方。1、首先配置内核使用的命令如下,需要制定内核的构架,否则内核的配置还是X86的内核make menuconfig ARCH=arm2、编译内核的命令如下,也与X86的命令有所不同,需要制定构架以及交叉编译工具make uImage ARCH=arm CROSS_COMPILE=arm-linux-3、除了上面两...原创 2020-01-23 09:03:47 · 220 阅读 · 0 评论 -
如何安装arm交叉工具链及问题解决
在进行基于arm的嵌入式linux开发时,首先要安装交叉工具链。要按照交叉工具链首先要获得交叉工具链的压缩包,我这里用的是开发板上自带的压缩包:arm-linux-gcc-4.5.1-v6-vfp.tgz1、安装交叉工具链的第一步是解压缩这个压缩包。命令如下:sudo tar xvzf arm-linux-gcc-4.5.1-v6-vfp.tgz -C /这个命令的作...原创 2020-01-22 16:33:48 · 1071 阅读 · 1 评论