嵌入式linux
宋奇山
本来没有搞技术的心思,可是误入歧途而读研,思之而悔恨,弃之而不忍暂且学好技术吧,等毕业之时再转身试试,权当立身之本吧。目前专注于:APP架构设计及开发。
展开
-
不同应用场景的10个Linux面试问题与解答
本文由 极客范 - 小道空空 翻译自 Avishek Kumar。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。这一次我们不再介绍某个特定主题的Linux面试问题,而是随机选取一些来介绍。这些问题不但可以扩展你的Linux知识体系,还可以让你在面试的时候所向披靡。1. 假设定期维护和备份文件是你的日常工作任务之一。备份的文件以压缩的形式保存转载 2014-04-09 09:12:18 · 1114 阅读 · 0 评论 -
undefined reference to…
照着GUN/Linux编程指南中的一个例子输入编译,结果出现如下错误:undefined reference to 'pthread_create'undefined reference to 'pthread_join'问题原因: pthread库不是 Linux 系统默认的库,连接时需要使用静态库libpthread.a,所以在使用pthread_create()创建线程,原创 2013-12-02 09:12:57 · 645 阅读 · 0 评论 -
修改linux内核启动logo及显示位置
转载于:http://blog.chinaunix.net/uid-28458801-id-3484269.html在此基础上我又添加了我的一些不同的地方,仅供参考内核版本: 2.6.35.3lcd:800x6001、内核默认的logo图片为drivers/video/logo/logo_linux_clut224.ppm1,制原创 2013-12-02 09:12:33 · 3449 阅读 · 0 评论 -
buntu下shell脚本运行异常:bash和…
转载于:http://www.51testing.com/?uid-225738-action-viewspace-itemid-208702 我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo-e "\nTest\n"到执行就不同,直接用sh test.sh运行,会打印出-e(原创 2013-12-02 09:12:26 · 921 阅读 · 0 评论 -
Yaffs2根文件系统制作
Yaffs2根文件系统制作 环境: 交叉编译环境:4.4.6 开发平台:s3c2416 1,编译busybox 获取busybox源码busybox-1.17.2.tar(http://www.busybox.net/downloads/) 置于目录/opt/embed下 #tar jxvf busybox-1.17.2.tar.bz2 #c原创 2013-12-02 09:12:17 · 887 阅读 · 0 评论 -
eth0 no such device(reload)
转载自:http://blog.chinaunix.net/uid-25554408-id-292638.html 今天我在vmware里安装了虚拟机,安装虚拟机就想安装vmwaretools(这个道理你懂的),等我装完后发现ip地址不见了,一查eth0没了,奇怪,上网找资料看到一下东西就把问题解决了。VMWARE UBUNTU网口自动增加 eth0 no such device解决原创 2013-12-02 09:12:06 · 1064 阅读 · 0 评论 -
编译错误error: invalid&nbsp…
昨天遇到一个莫名其妙的编译错误,以前没有见过,而且代码流程看起来也没有太多的奇异之处。后来忍无可忍,百度了下,发现别人也有遇到这个错误的,他的解决方法是:少了“}”。嘿嘿,我开始跟踪每一个函数,终于找到了这个地方。对的。就是因为少了一个“}”。所以要注意了,仔细仔细哈。下面就是make后出现的错误:xxxxx.c:100: error: invalid storage class fo原创 2013-12-02 09:11:39 · 890 阅读 · 0 评论 -
Ubuntu下 Nfs服务器安装
Ubuntu Nfs服务器安装 nfs服务器在嵌入式开发中非常常用,可以实现主机和开发板共享文件。 1、安装软件包 sudo apt-get install nfs-common nfs-kernel-server portmap 2、配置 sudo mkdir /nfs sudo vim /etc/exports 增加下面一行的内容原创 2013-12-02 09:11:32 · 573 阅读 · 0 评论 -
ubuntu 12.04修改环境变量PAT…
这里我只针对ubuntu12.04进行了测试,由于不同的linux发行版本可能会有一些地方不一致,所以对于其他的linux发行版仅供参考。1、直接在命令行里添加 我们先来看下下PATH的值echo $PATH在我的电脑上输出的值如下:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/game原创 2013-12-02 09:11:30 · 820 阅读 · 0 评论 -
2009-2010网络最热的 嵌入式…
前段时间做了一个关于ARM92440资料的汇总帖,很高兴看到21ic和CSDN等论坛朋友们的支持和鼓励。当年学单片机的时候datasheet和学习资料基本都是在论坛上找到的,也遇到很多好心的高手朋友,耐心的回答我提出的问题。感激、图报,很简单的想法。希望这次整理的资料帖能对更多的嵌入式爱好者朋友带来帮助!PS:在此特别感谢 古道热肠 版主把我的帖子加精,给小弟极大鼓舞!嵌入式入门篇:原创 2013-12-02 09:11:13 · 833 阅读 · 0 评论 -
注意:开发环境不同,启动代码不同…
今天一直纠结于程序老是出问题,就是拿别人的源码直接编译还是出问题,现在终于明白,开发环境不同启动代码也不同,在网上下载个源码启动代码如下:.globl _start_start: ldr r0,=0x70000000 orr r0, r0, #0x13 mcr p15,0,r0,c15,c2,4 @256M(0x70000000-0x7ff原创 2013-12-02 09:10:16 · 706 阅读 · 0 评论 -
IAR FOR ARM 各版…
用过Keil和IAR,个人感觉是IAR还是很不错的。下载地址是:http://files.iar.com/ftp/pub/box/CD-EWARM-6301-3142.zipV6.30.1(该地址看着像是IAR网站的,不知是不是O(∩_∩)O~)下面再给大家一些以往的版本下载地址http://files.iar.com/ftp/pub/box/CD-EWARM-6214-2946.zi原创 2013-12-02 09:09:38 · 838 阅读 · 0 评论 -
在linux中read、write函数
read函数从打开的设备或文件中读取数据。 #includeunistd.h>ssize_t read(int fd, void *buf, size_tcount);描述:参数count是请求读取的字节数,读上来的数据保存在缓冲区buf中,同时文件的当前读写位置向后移。(注意:这个读写位置和使用C标准I/O库时的读写位置有可能不同,这个读写位置是记在内核中的,原创 2013-12-02 09:09:47 · 712 阅读 · 0 评论 -
进程间通信___命名管道(FIFO)
命名管道(FIFO)基本概念命名管道和一般的管道基本相同,但也有一些显著的不同: 命名管道是在文件系统中作为一个特殊的设备文件而存在的。 不同祖先的进程之间可以通过管道共享数据。 当共享管道的进程执行完所有的I/O操作以后,命名管道将继续保存在文件系统中以便以后使用。管道只能由相关进程使用,它们共同的祖先进程创建了管道。但是,通过FIFO,不相关的进程也能原创 2013-12-02 09:09:56 · 619 阅读 · 0 评论 -
linux驱动开发的经典书籍
转载于:http://www.cnblogs.com/xmphoenix/archive/2012/03/27/2420044.html 参加实习也近一个月了,严重感觉知识不够,真是后悔学校里浪费那么多时间做那些无聊的事情,无聊的课程。看到这个博文,心里有种冲动,立下愿望,把以下几本大作一一拜读,希望大家有机会也好好看看,再此和大家分享!! Linux驱动学习的最大困惑原创 2013-12-02 09:12:31 · 1164 阅读 · 0 评论 -
如何在Linux中添加新的系统调用
系统调用是应用程序和操作系统内核之间的功能接口。其主要目的是使得用户 可以使用操作系统提供的有关设备管理、输入/输入系统、文件系统和进程控制、 通信以及存储管理等方面的功能,而不必了解系统程序的内部结构和有关硬件细 节,从而起到减轻用户负担和保护系统以及提高资源利用率的作用。 Linux操作系统作为自由软件的代表,它优良的性能使得它的应用日益广泛, 不仅得到原创 2013-12-02 09:12:11 · 1122 阅读 · 0 评论 -
linux驱动模块编译(初学者)
inux 模块编译步骤(转) 本文将直接了当的带你进入linux的模块编译。当然在介绍的过程当中,我也会添加一些必要的注释,以便初学者能够看懂。之所以要写这篇文章,主要是因为从书本上学的话,可能要花更长的时间才能学会整个过程,因为看书的话是一个学习过程,而我这篇文章更像是一个培训。所以实践性和总结性更强。通过本文你将会学到编译一个模块和模块makefile的基本知识。以及加载(卸载)模原创 2013-12-02 09:11:54 · 866 阅读 · 0 评论 -
tftp使用方法
参数说明:-l 是local的缩写,后跟存在于Client的源文件名,或下载Client后 重命名的文件名。 -r 是remote的缩写,后跟Server即PC机tftp服务器根目录中的源文 件名,或上传Server后重命名后的文件名。 -g 是get的缩写,下载文件时用,原创 2013-12-02 09:11:34 · 1555 阅读 · 0 评论 -
cuteFTP连接不上VM虚拟机中RedHat&…
摸索了一下午,终于解决了问题:主要原因是因为redhat系统配置文件默认root用户无法使用ftp,只需作如下修改就可以使用了。 1、找到/etc/vsftpd/目录修改下面的连个文件 2、用命令gedit /etc/vsftpd/ftpusers 把其中的root给屏蔽,即变成 #root 3、用命令gedit/原创 2013-12-02 09:11:24 · 837 阅读 · 0 评论 -
S3C6410移植u-boot
1、首先下载u-boot(ftp://ftp.denx.de/pub/u-boot)wget ftp://ftp.denx.de/pub/u-boot/u-boot-latest.tar.bz22、解压到你指定下路径中tar -jxvf u-boot-latest.tar.bz2 -C /opt步骤21、进入u-boot-文件夹 cd /opt/u-boot-2011.06/cd原创 2013-12-02 09:11:15 · 1026 阅读 · 0 评论 -
OK6410之tftp下载内核,nfs…
原文地址:OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]作者:千山我独行 由于工作的平台也是嵌入式,差不多的平台,所以一直就没有把自己买过来的ok6410板子好好玩玩。以前一直都是sd卡去进行实验的。想着,如果和公司实验室里的开发平台一样的话,那多好啊,既方便,又快捷。磨刀不误砍柴工嘛,好的开发环境可以提高很多效率的。好了,下面开始讲讲怎么去实现的吧。下文很多是参考网转载 2013-12-02 09:11:08 · 983 阅读 · 0 评论 -
cuteFTP软件往linux中上传文件时报…
我是在win7和VM中的ubuntu传输文件:使用一个客户端,可以正常的连接,但是当上传文件时,总是报553 Could not create file错误信息。主要原因是新建的文件夹没有更改权限!!我也是按照网上的做法,对/var/ftp目录进行权限设置,如果设置为chmod -R777 /var/ftp还会导致ftp服务器不能启动,经过摸索,终于找到了解决的方法。首先在ftp的目录中原创 2013-12-02 09:10:45 · 1261 阅读 · 0 评论 -
在ubuntu中编译内核是用make …
执行过程如下:root@zyx-VirtualBox:~# cd /opt/EmbedSky/root@zyx-VirtualBox:/opt/EmbedSky# cd linux-2.6.30.4/root@zyx-VirtualBox:/opt/EmbedSky/linux-2.6.30.4# make menuconfig*** Unable to find the ncurses原创 2013-12-02 09:10:40 · 659 阅读 · 0 评论 -
0k6410定时器详细分析
看到一篇很好的博文,分析2410定时器中断的使用的,很详细,和大家分享一下 转载来源于http://www.cnblogs.com/Neddy/archive/2011/07/01/2095176.html s3c2410提供了5个16位的Timer(Timer0~Timer4),其中Timer0~Timer3支持PulseWidth Modulation—— PWM(脉宽调制 )原创 2013-12-02 09:10:33 · 771 阅读 · 0 评论 -
Ubuntu+Win7+Samba实现文件共享
Samba是Ubuntu和Windows进行网络共享的工具,比如分享打印机,互相之间传输资料文件。安装sambasudo apt-get install samba查看samba是否安装成功sudo dpkg -l samba*Desired=Unknown/Install/Remove/Purge/Hold|Status=Not/Inst/Conf-files/Unpac原创 2013-12-02 09:09:45 · 740 阅读 · 0 评论 -
《转》我的ARM学习经历
1、基础阶段 话说06年第一份工作从事的是PLC开发,用protel画原理图和PCB,写AVR单片机程序,焊焊板子,还去过华强北买器件,比较杂,但是接触面比较广,为进一步学ARM打下了基础。 期间不甘心只停留在AVR单片机层次,买了邵贝贝的《uCOS-II嵌入式操作系统》,看了4-5遍,弄懂它的原理,还看了陈明计的《SmallRTOS嵌入式操作系统》,之后自己写了一个AVR的时间原创 2013-12-02 09:09:36 · 675 阅读 · 0 评论 -
kernel下制作动态logo
kernel下制作动态logo在uboot中实现logo的好处是反映速度快。在kernel中实现logo的好处是,不管是android还是什么其他平台,logo显示无需考虑上层平台。参照三星平台的写法,logo的显示一方面是开机时产品的标志,另一方面也是lcd驱动执行后显示屏工作正常的标志。所以logo的显示自然就藏于lcd驱动代码当中。 static int __de原创 2013-12-02 09:12:20 · 1954 阅读 · 0 评论 -
s3c6410存储器映射
1.引导镜像区 0x0000_0000~0x07FF_FFFF2.内部存储区(1) 内部ROM 0x0800_0000~0x0BFF_FFFF(2) 内部SRAM 0x0C00_0000~0x0FFF_FFFF3.静态存储区 0x1000_0000~0x3FFF_FFFF4.动态存储区 0x4000_0000~0x6FFF_FFFFS3C6410的物理内存分成Memory和Pheri原创 2013-12-02 09:11:17 · 749 阅读 · 0 评论 -
6410中的PWM 定时器
看了OK6410的手册,感觉晕晕的。 需要整理一下思路。我觉得主要的知道下面这几个内容吧。1. 定时器的电路结构。2. 定时器的工作原理是什么。定时器如何来使用。{使用的时序是什么,在时间轴上各个寄存器应该如何配置}3. 里面涉及的寄存器都有哪些。 各个寄存器的职责是什么。1. 简单介绍 :S3C6410X中有5个定时器,这些定时器产生内部中断。其中,T原创 2013-12-02 09:10:36 · 716 阅读 · 0 评论 -
6410裸板程序,led、蜂鸣器、按键…
//*****************************************************************//作者:昊天////功能:在ok6410板子上跑裸板程序,用四个按键控制四个led灯的两灭及蜂鸣器的叫声,// 当按键1按下时(此时为低电平)点亮led1同时蜂鸣器响,当松手时,led1灭及蜂鸣器不响 // 以此类推剩下三个键原创 2013-12-02 09:10:31 · 841 阅读 · 0 评论 -
6410在rvds下编译启动代码报错分析
contains invalid call from '~PRES8' function to 'REQ8' functionmainRVDS编译出现contains invalid callfrom '~PRES8' function to 'REQ8' function main解决办法:在汇编文件顶部加 preserve8 伪指令错误提示如下:Error : armlin原创 2013-12-02 09:10:14 · 1000 阅读 · 0 评论 -
S3C6410的启动代码分析 一
本文开始第一篇,启动代码的编写,注意,仅仅是启动代码,并不是bootloader,因为只有boot,没有loader。 第一要明确:CPU上电之后,会从某个固定地址执行指令。ARM结构的CPU从地址0x00000000开始执行指令,MIPS结构的CPU将会从0XBFC00000取第一条指令并执行。(注意,这个地址是CPU的统一编址,需要把存储器件ROM或者flash映射到这个地址上原创 2013-12-02 09:10:11 · 834 阅读 · 0 评论 -
linux中stdout,stdin,stderr意义
stdout, stdin, stderr的中文名字分别是标准输出,标准输入和标准错误。在Linux下,当一个用户进程被创建的时候,系统会自动为该进程创建三个数据流,也就是题目中所提到的这三个。那么什么是数据流呢(stream)?我们知道,一个程序要运行,需要有输入、输出,如果出错,还要能表现出自身的错误。这是就要从某个地方读入数据、将数据输出到某个地方,这就够成了数据流。因此,一个进原创 2013-12-02 09:09:58 · 2979 阅读 · 0 评论 -
linux中open函数使用
open函数用来打开一个设备,他返回的是一个整型变量,如果这个值等于-1,说明打开文件出现错误,如果为大于0的值 参考格式 if(fd=open("/dev/ttys0",O_RDWR | O_NOCTTY |O_NDELAY)) int open(const char *pathname, int oflag, …/*,mode_t mode * / ) ; 打开的操作类型原创 2013-12-02 09:09:54 · 904 阅读 · 0 评论 -
linux管道通信
管道是单向的字节流,它将某个进程的标准输出连接到另一个进程的标准输入。管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。管道和有名管道的读写规则是在程序中应用它们的关键。 管道相关的概念 在linux中管道是通过指向同一个临时的VFS inode的两个file原创 2013-12-02 09:09:52 · 821 阅读 · 0 评论 -
linux中memset的正确用法
linux中memset的正确用法 【起因】希望对各种类型的数组进行初始化,避免野值 【函数头文件】 提示:在linux中可以在terminal中输入 "man memset"进行查询 #include void*memset(void *s, int c, size_t n); 【使用说明】 The memse原创 2013-12-02 09:09:49 · 1063 阅读 · 0 评论 -
Shell脚本语法---在Makefile等文件…
1. Shell脚本语法1.1. 条件测试:test [命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的ExitStatus为0,如果测试结果为假,则命令的ExitStatus为1(注意与C语言的逻辑表示正好相反)。例如测试两个数的大小关系:$ VAR=2$ test $VAR -gt 1$ echo $?0$ test $VAR -gt 3$原创 2013-12-02 09:13:10 · 2166 阅读 · 0 评论 -
构造IOCTL命令的学习心得-----_IO,…
在编写ioctl代码之前,需要选择对应不同命令的编号。为了防止对错误的设备使用正确的命令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对FIFO和audio等这类非串行设备输入流修改波特率,如果每一个ioctl命令都是唯一的,应用程序进行这种操作时就会得到一个EINVAL错误,而不是无意间成功地完成了意想不到的操作。 在驱动程序里, ioct原创 2013-12-02 09:13:50 · 934 阅读 · 0 评论 -
RedHat Enterprise Linu…
Abstract 在嵌入式开发中有宿主机和目标机之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。 TFTP服务器作为工作于宿主机的软件,主要提供对目标机的主要映像文件的下载工作。Solution一.TFTP服务器的安装 利用以下命令就可以看到TFTP服务器已启动,则不用安装[root@localhost Server]# n原创 2013-12-02 09:09:41 · 599 阅读 · 0 评论 -
【 Makefile 编程基础之…
本站文章均为 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/gcc-makefile/766.html 概述:什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,mak原创 2013-12-02 09:14:10 · 734 阅读 · 0 评论