![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux嵌入式
文章平均质量分 73
dreamtdp
这个作者很懒,什么都没留下…
展开
-
关于线程间共享数据互斥的思考
关于线程间共享数据互斥的思考当多个线程需要访问相同的数据时,需要用锁实现互斥。尽量不要对每个共享都创建一个锁,因为太多的锁容易出现死锁问题。可将这些共享数据放入一个struct/class中,然后对struct/class变量加锁,即增强可读性,也防止了死锁的出现。互斥代码段要尽量短小,这样可以减少其它线程的等待时间。在有的平台下,要防止在主线程中阻塞等待访问互斥共享变量过转载 2012-05-06 15:05:14 · 527 阅读 · 0 评论 -
关于学习Linux的经典书籍 (深入理解Linux内核、Linux设备驱动程序等)
关于学习Linux的经典书籍 (深入理解Linux内核、Linux设备驱动程序等)分类: 嵌入式linux c 编程 嵌入式arm篇 嵌入式linux kernel篇嵌入式linux driver篇嵌入式Bootloader篇linux 操作系统篇 Qt 编程篇 开发工具问题解决篇电子电路设计篇 嵌入式android系统开发 2012-03-05 19:44转载 2012-10-16 19:03:15 · 1172 阅读 · 0 评论 -
进程让他每隔5秒钟执行一次(非阻塞)
在Linux实现一个定时器,不像Win32下那样直观。在Win32调用SetTimer就行了,在Linux下则没有相应函数可以直接调用。定时器作为一个常用的功能,在Linux当然也有相应实现。下面我们看看几种常用的方法。 要实现定时器功能,最土的办法实现莫过于用sleep/usleep来实现了。当然,它会阻塞当前线程,除了处理定时功能外,什么活也干不了。当然要解决这个问题不难,创建一个转载 2012-10-16 21:08:16 · 4610 阅读 · 0 评论 -
select用法
linux select用法select系统调用是用来让我们的程序监视多个文件句柄(file descrīptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。文件在句柄在里很多,如果你man某个函数,在函数返回值部分说到成功后有一个文件句柄被创建的都是的,如man socket可以看到“On success, a file desc转载 2012-10-18 16:05:33 · 622 阅读 · 0 评论 -
嵌入式软件开发学习导引
嵌入式软件开发学习导引 2009-07-25 11:40:20标签:嵌入式、学习导引原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yunli.blog.51cto.com/831344/183111现在正在写《跟我学嵌入式开发》这个系列的博文(注:这个系列最终成为了《专业嵌入式软件开发》一书的部分内转载 2012-10-29 20:56:38 · 551 阅读 · 0 评论 -
Linux里设置环境变量的方法
Linux里设置环境变量的方法一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录下,build_tools就是我的编译工具,则有如下三种方法来设置环境变量:1、直接用export命令:(只对当前终端有效)#export PA原创 2012-11-02 10:12:47 · 1070 阅读 · 0 评论 -
如何学arm linux嵌入式
如何学arm linux嵌入式分类: arm9 linux嵌入式 2012-09-12 15:09753人阅读 评论(0)收藏 举报作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下。 在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。C语言要学到什么程度呢?越熟当转载 2012-11-01 11:27:51 · 960 阅读 · 0 评论 -
主机ping通虚拟机解决及eth0_rename
一般而言,安装完VirtualBox设定网路时选择默认的NAT模式,Guest就可顺利上网。但是该方式虚拟机只能ping通外界(如主机WIN7,2440),外界(如主机WIN7)ping不通虚拟机。在VirtualBox设置-》网络-》网络连接1对应eth0,网络连接2对应eth2,同理。在网络连接2选择桥接方式,用来双方通信,连接2440 NFS启动。在终端输入setup ,修改IP原创 2013-03-14 11:55:18 · 2300 阅读 · 0 评论 -
标准的字符设备驱动的模板
作者:武汉培训中心 讲师:李家凯引言:Linux驱动中,字符设备的设计一般会占产品驱动开发的90%以上,作者根据驱动开发的实际经验,总结了一个标准的字符设备驱动的模板,仅供参考。//=======================字符设备驱动模板开始 ===========================//#define CHAR_DEV_DEVICE_NAME转载 2013-03-24 10:56:01 · 875 阅读 · 0 评论 -
在Linux里设置环境变量的方法(export PATH)
在Linux里设置环境变量的方法(export PATH)在Linux里设置环境变量的方法(export PATH)一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录下,build_tools就是我的编译工具,则有如下三种方法来设置转载 2013-04-17 14:21:38 · 622 阅读 · 0 评论 -
嵌入式行业的一些建议(讲的很好)
嵌入式行业的一些建议(讲的很好) 分类: 嵌入式领域 2012-03-17 14:33 428人阅读 评论(0) 收藏 举报 嵌入式linuxlinux内核程序开发平台桌面环境嵌入式时代已经来临,你还在等什么? ---循序渐进学习嵌入式开发技术最近经常有用人单位给我打来电话,问我这有没有嵌入式Linux方面的开发人员,他们说他们单位急需要懂得在嵌入式linux环境下的软件开发人员,我回答说,现在每转载 2013-04-28 13:32:10 · 1493 阅读 · 0 评论 -
转顶嵌欧老师:深入学习嵌入式linux知识要点
深入学习嵌入式linux知识要点一.linux理论知识 1.计算机基本理论;2.CPU体系结构;3.内存管理;4.文件系统;5.进程调度;6.Linux常用操作。二.linux驱动知识1.i2c驱动添加使用 2.spi驱动添加和读写 3.io驱动 4.dma转载 2013-05-20 21:16:52 · 878 阅读 · 0 评论 -
wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的
http://blog.csdn.net/21aspnet/article/details/6667431转载 2013-05-12 21:25:50 · 522 阅读 · 0 评论 -
Linux下检测网卡与网线连通状态
Linux下检测网卡与网线连通状态分类: Linux 2010-04-03 12:05 1123人阅读 评论(0)收藏 举报linuxinterfacebuffershellfpstructLinux_stat.c[cpp] view plaincopyprint?#include #include #includ转载 2013-06-11 10:27:59 · 994 阅读 · 0 评论 -
交叉编译环境的建立与Eclipse的使用
交叉编译环境的建立与Eclipse的使用所需开发工具及环境虚拟机Linux:Fedora 9交叉编译工具:arm-linux-gcc-3.4.1.tar.bz2集成开发工具:Eclipse(Linux安装包中自带的,安装Linux时选中安装)安装ARM交叉编译器 1. 安装。其实很简单,就是将下载的arm-linux-gcc-3.4.1.tar.bz2转载 2013-06-20 11:40:10 · 4523 阅读 · 0 评论 -
select 应用,加入队列
#include "listenhtmldata_thread.h"#include "listenhtmldata_thread.h"#include #include #include #include "string.h"#include "queue.h"Queue *queue_headpointer;//定义顺序栈的指针#define Ht原创 2013-06-22 10:46:02 · 758 阅读 · 0 评论 -
如何编译一个内核 - Ubuntu方式
如何编译一个内核 - Ubuntu方式 日期:2006-11-21 作者:赵珂 译 来自:howtoforge.com每一个Linux发行版都有自己专门的工具去构建自定义的内核. 本文主要介绍在Ubuntu平台上编译内核, 如何从www.kernel.org(也叫vanilla kernel)获得最新且未改动的内核源代码来构建一个自定义的内核, 这样你可以使用自己的内核而不转载 2013-06-23 11:07:09 · 965 阅读 · 0 评论 -
Ping命令的工作过程
Ping命令的工作过程: 假定主机A的IP地址是192.168.1.1,主机B的IP地址是192.168.1.2,都在同一子网内,则当你在主机A上运行“Ping 192.168.1.2”后,都发生了些什么呢? 首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址“192.168.1.2”一起交给IP层协议(和ICMP一样,转载 2012-09-25 08:42:14 · 2925 阅读 · 0 评论 -
Linux环境下段错误的产生原因及调试方法小结
Linux环境下段错误的产生原因及调试方法小结分类: c++ linux学习调试gdb 2012-08-21 10:38 83人阅读 评论(0)收藏 举报目录(?)[+]段错误是什么段错误产生的原因访问不存在的内存地址访问系统保护的内存地址访问只读的内存地址栈溢出段错误信息的获取dmesg-gnmldd段错误的调试方法转载 2012-09-22 19:49:35 · 815 阅读 · 0 评论 -
pthread_kill-----向线程发送信号
别被名字吓到,pthread_kill可不是kill,而是向线程发送signal。还记得signal吗,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数。int pthread_kill(pthread_t thread, int sig);向指定ID的线程发送sig信号,如果线程代码内不做处理,则按照信号默认的行为影响整个进程,也就是说原创 2012-05-07 16:03:25 · 5509 阅读 · 0 评论 -
fread与read的区别---open和fopen的区别--fread函数和fwrite函数
fread与read的区别---open和fopen的区别--fread函数和fwrite函数fread与read的区别f是ANSI的C标准库。而后者的是UNIX下的系统调用。fread带有缓冲,是read的衍生,或者说fread是通过read实现的要想直接和硬件打交道,必须用readfopen/fread是C标准的库函数,操作的对象转载 2012-05-12 17:40:55 · 22729 阅读 · 2 评论 -
pthread/Linux多线程编程
pthread/Linux多线程编程本文出自:http://www.china-pub.com 作者: 姚继锋 (2001-08-11 09:05:00)1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix 也支持线程的概念,但是在一个进程(process)中只允许有一转载 2012-05-14 19:44:25 · 664 阅读 · 0 评论 -
展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告(转)
展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告(转)走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们。01. 自己的户口档转载 2012-05-14 20:25:37 · 553 阅读 · 0 评论 -
mutex ----只有等到主进程解锁后,子线程才能运行
/*mutex.c * function:mutex test in main,pthread */#include#include#include#includevoid * pthread_fuction(void *arg);char flag=1;pthread_mutex_t mutex;//definite a mutexint main原创 2012-05-15 09:42:57 · 663 阅读 · 0 评论 -
Linux下到IPC(进程间通信方法比较)
下面涉及到到一些函数,都可以用man命令来获取信息,比如man shmget,或者man 2 write.进程作为linux系统中分配资源的最小单位,进程间到协作和通信用的范围比较广泛。 进程间通信的方法有以下几种:PIPE(半双工管道)FIFO (命名管道)信号量消息队列共享内存信号PIPE主要是用在父子进程之间到通信,是最初级的IPC通信方式,它主要是调用pipe()函原创 2012-05-09 20:44:46 · 998 阅读 · 0 评论 -
I/O复用----fcntl和select
linux 网络编程总结linux网络编程中两个重要的高级编程函数:fcntl和select函数原型如下:1、int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout);2、int fcntl(int fd , int cmd);int fcn转载 2012-05-23 17:09:28 · 667 阅读 · 0 评论 -
Linux网络socket编程入门
Linux网络编程入门(一)Linux网络编程--网络知识介绍Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。 比如我们使用ftp程序从另外一转载 2012-05-23 19:55:06 · 1244 阅读 · 0 评论 -
Unix/Linux IPC及线程间通信总结
Unix/Linux IPC及线程间通信总结一、互斥与同步1.互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。2.同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时原创 2012-05-23 20:48:57 · 1528 阅读 · 0 评论 -
16道嵌入式C语言面试题
16道嵌入式C语言面试题分类: 嵌入式2011-08-15 15:47 61人阅读 评论(0) 收藏 举报 16道嵌入式C语言面试题 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想转载 2012-06-21 19:56:38 · 782 阅读 · 0 评论 -
在Linux里设置环境变量的方法(export PATH)
一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录下,build_tools就是我的编译工具,则有如下三种方法来设置环境变量:1、直接用export命令:#export PATH=$PATH:/opt/au1200_rm/build_tools转载 2012-08-31 09:03:15 · 614 阅读 · 0 评论 -
Android 上移植 ghostscript-9.04 静态编译
Android 上移植 ghostscript-9.04 静态编译<!--@page {margin:2cm}p {margin-bottom:0.21cm}-->一、说明因为Android没有glib库,而gcc默认为动态编译,为了使程序能在开发板上运行,我们自己的C程序需要采用静态编译。ghostscript的下载地址为http://downlo转载 2012-08-31 10:07:14 · 1301 阅读 · 2 评论 -
交叉编译环境安装
arm-linux-gcc-4.33 安装linux OS fedora10kernel 2.6.30下载一个arm-linux-gcc-4.3.3.tar.gz的压缩包 tar xvfz arm-linux-gcc-4.3.3.tar.gz -C /注:组后的-C参数中的C是大写的参数 ,而且C与后面的斜线之间是有一个空格的然后就是修改环境PATH原创 2012-09-01 17:29:48 · 1944 阅读 · 0 评论 -
LINUX--下LCD参数设置
宏定义选择要相应的屏,cd /opt/EmbedSky/linux-2.6.30.4/arch/arm/mach-s3c2440vim mach-tq2440.c #elif defined(CONFIG_FB_S3C24X0_TFT800600)193 .width = 800,194 .height原创 2012-08-28 11:03:25 · 1163 阅读 · 0 评论 -
Linux命令行修改IP、网关、DNS的方法
Linux命令行修改IP、网关、DNS的方法 方式一:ifconfig eth0 192.168.1.18 netmask 255.255.255.0说明:该种方式可以使改变即时生效,重启后会恢复为原来的IP方式二:vi /etc/sysconfig/network-scripts/ifcfg-eth0说明:该方式要重启后生效,且是永久的如果要立即更改且永久生效转载 2012-10-01 09:45:26 · 36416 阅读 · 0 评论 -
介绍学习嵌入式开发
怎样学习嵌入式开发在嵌入式软件方面最重要的课程包括: (1) 嵌入式微处理器结构与应用:这是一门嵌入式硬件基础课程,我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM处理器工作原理和接口技术有充 分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效 率),怎么能写出驱动程序(驱动程序都是与转载 2012-10-05 14:48:08 · 1456 阅读 · 0 评论 -
嵌入式学习步骤
嵌入式学习步骤学习步骤如下:1、Linux 基础 安装Linux操作系统Linux文件系统Linux常用命令Linux启动过程详解熟悉Linux服务能够独立安装Linux操作系统能够熟练使用Linux系统的基本命令认识Linux系统的常用服务安装Linux操作系统Linux基本命令实践设置Linux环境变量定制Linux的服务 She转载 2012-10-08 10:45:07 · 2766 阅读 · 0 评论 -
linux无法启动---批改profile导致Fedora10无法登陆----分辨率
修改profile导致Fedora无法登陆 Fedora10系统下安装JDK后配置环境变量时,一时大意,将etc/profile文件配置错了,导致系统重启后无法进入登陆界面。里面安装的软件太多,重装系统工程太大了。一番谷歌之后,发现用单用户模式(类似于Window下的安全模式)登陆后重新修改profile文件即可, 现将过程记录如下,方便日后查询(系统为基于Fedora14的Timesys):原创 2013-05-11 10:17:48 · 1414 阅读 · 0 评论