
嵌入式linux
文章平均质量分 64
追梦鸟
韬光养晦 厚积薄发
展开
-
S3C6410处理器介绍
S3C64xx系列的应用处理器芯片是三星主推的,三星目前推出了S3C6400和S3C6410,都是基于ARM11架构的,而且硬件管脚兼容,应该说大致的功能基本相同,比较明显的区别就是S3C6410带有2D/3D硬件加速。大致看了一下,S3C6410是一个强大的应用处理器,转载 2011-10-16 09:47:17 · 834 阅读 · 0 评论 -
linux 学习之权限管理
Linux -- 权限管理:1, chmod,更改文件权限。文件的权限分为3个部分,即属主(文件所有人)权限,用户组权限,其他用户权限,每个部分有r(可读),w(可写),x(可执行),在最开始还有一个用来表示文件类型的字母,如d表示目录,-表示普通文件,c表示设备,这样加起来就成了10个字母组成的一串,例如:drwxr- xrwx中间的“-”表示该属性已被去掉,当然相应的操作就不可执行,比如上转载 2011-11-23 10:39:28 · 628 阅读 · 0 评论 -
gcc -l参数和-L参数 讲得太清楚了
-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了。好了现在我们知道怎么得到库名,当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,编译时加上-ltest参数原创 2011-11-23 14:50:21 · 792 阅读 · 2 评论 -
搞IT的到底怎么了——笑死我了
十年前大概,每一个人都以IT为荣,可是十年后的今天,IT几乎成了一个略带侮辱性的词汇。老婆的QQ截图给我看:看了以后,思考良久...高度数眼镜,呆滞,满脸痘痘,卷发(统计意义)...这是IT人;挤车,一身臭汗,加班,低薪水,动不动就代码,这些是IT人;第一天看《算法导论》第一页,第二天看第二页,第三天换了《深入理解Linux内核》看第一页...这是IT人;转载 2011-11-24 13:43:23 · 1322 阅读 · 0 评论 -
UDP包的大小与MTU
在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好?当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对像ICQ一类的发送聊天消息的情况作分析,对于其他情况,你或许也能得到一点帮助:首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,运输层,应用层.UDP属于运输层,下面我们由下至上一步一步来看:转载 2011-11-25 13:37:52 · 2397 阅读 · 0 评论 -
视频终于可以传了,happy下
经过了苦闷的两三个星期,基于6410的有线视频传输终于传通了。之前程序编写的没有问题,但是一直是以30帧的速率传800*480的视频,结果接收端无法正常显示;今天苦闷的无聊,把视频大小改为320*240,接收端竟然能够解码显示了,虽然很模糊,但是毕竟踏出了第一步,没有报错。心情那个激动啊。立马来了精神,认真检查代码,修改帧率等参数:图像清晰了,可以传640*480了。真是好高兴啊。原创 2011-11-03 20:24:38 · 1084 阅读 · 2 评论 -
S3C6410芯片揭密之一 S3C6410体系结构
S3C6410 是一个16/32 位RISC 微处理器,旨在提供一个具有成本效益、功耗低,性能高的应用处理器解决方案,像移动电话和一般的应用。它为2.5G 和 3G 通信服务提供优化的H /W 性能, S3C6410 采用了64/32 位内部总线架构。该64/32 位内部总线结构由AXI、AHB 和APB 总线组成。它还包括许多强大的硬件加速器,像视频处理,音频处理,二维图形,显示操作转载 2011-11-05 10:04:51 · 3482 阅读 · 0 评论 -
网络最热的ARM|Linux|wince|ucos|经典资料完整版
本文部分内容来自:嵌入式学习网嵌入式入门篇:什么是嵌入式系统 http://www.helloarm.com/Embedded-Learn/58.htm嵌入式资深工程师白话说“嵌入式” http://www.helloarm.com/Embedded-Learn/52.htm嵌入式系统的学习途径与基本方法(硬件)转载 2011-11-05 10:09:49 · 1015 阅读 · 0 评论 -
ubuntu 11.04切换回默认的GNOME桌面
使用Ununtu11.04已经有一段日子了,说实话这版ubuntu的默认桌面Unity,使用起来真的不习惯。借这次给笔记本重装系统的时机,换一下,找找之前的感觉。原来以为很麻烦,其实真操作起来很简单,可以随时在GNOME和Unity之间切换。方法一、开机后进入到Ubuntu的登录页面,如下图:注意:要先选中登录用户才会出现下边的选择条。转载 2011-11-29 11:38:22 · 5097 阅读 · 0 评论 -
网络字节序与主机字节序
不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序最常见的有两种1. Little endian:将低序字节存储在起始地址2. Big endian:将高序字节存储在起始地址LE little-endian最符合人的思维的字节序地址低位存储值的低位地址高位存储值的高位怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说低位值转载 2011-12-02 08:38:15 · 545 阅读 · 0 评论 -
linux多线程学习一
引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?转载 2011-11-12 15:07:15 · 803 阅读 · 1 评论 -
嵌入式linux加载引导内核和根文件系统的方法——写的不错
总体来说,嵌入式Linux内核和根文件的引导与PC机差不多。嵌入式linux内核和根文件系统可以存放在各种可能的存储设备中,一般情况下我 们将内核和根文件系统直接烧入到Flash中(包括NOR和NAND flash),这种方法的缺点是在内核和根文件系统出现修改时我们就不得不得重新对flash进行擦除和烧写工作,这个非常耗时,在产品开发调试阶段非常 不适合,只有在最终成品时才比较适用。哪在开发阶转载 2011-12-06 08:36:08 · 1105 阅读 · 0 评论 -
嵌入式平台Qt程序开发步骤
Step 1:首先设置宿主机上的环境变量(依你自己的情况而定):export QTDIR=/usr/local/arm-linux/qt_toolchain/qt-2.3.7export QPEDIR=/usr/local/arm-linux/qt_toolchain/qtopia-free-1.7.0export LD_LIBRARY_PATH=/usr/local/arm-li转载 2011-12-10 17:07:00 · 1078 阅读 · 0 评论 -
H264视频格式的解码图解
网上看到的一个H264视频格式的解码测试程序,可以用来参考其逻辑流程。转载 2011-10-27 16:09:27 · 2280 阅读 · 0 评论 -
TCP/IP中32位IP地址与点分IP(字符串)转换
在网络上面我们用的IP都是数字加点(192.168.0.1)构成的, 而在struct in_addr结构中用的是32位的IP,我们上面那个32位IP(C0A80001)是的192.168.0.1 为了转换我们可以使用下面两个函数 int inet_aton(const char *cp,struct in_addr *inp) char *inet_ntoa(str转载 2011-12-27 08:20:58 · 4747 阅读 · 0 评论 -
ubuntu10.10 Qt creater安装——实测可用
1. 下载Qt4.7版本如下是几个链接:Qt 4.7.1 SDK (完整开发环境)引用Qt SDK for Windows (322 MB) http://get.qt.nokia.com/qtsdk/qt-sdk-win-opensource-2010.05.exeQt SDK for Linux/X11 32-bit** (422 MB) http://get.转载 2011-12-10 17:23:49 · 1897 阅读 · 0 评论 -
linux学习笔记——各种问题记录
1)shell脚本怎么运行export不行啊 脚本如下:#!/bin/shexport TEST=aaaa怎么运行此脚本的时候,环境变量TEST还是不行啊?怎么在脚本中运行已有的命令?貌似嵌入板上没的/bin/里面没有export,但是可以在板上运行export怎么回事??解答:用source ./my.script来执行即可原创 2012-02-13 19:45:14 · 1405 阅读 · 0 评论 -
收集 V4L2 程序编写
VIDIOC_S_CROP ioctl会传入一个v4l2_crop给驱动程序 crop.c.left, crop.c.top. crop.c.width, crop.c.height定义了一个长方形区域,这个区域是capture或者overlay模式下的取景范围,举个例子,图片的active(actual) size是720x576, 现在你只想capture或者overlay (原创 2012-02-27 22:14:54 · 4161 阅读 · 0 评论 -
LINUX 音频编程
linux音频编程,记录一些可能用得到的信息。音频编程的过程很简单,按照一定的模式打开声卡(open),设置声卡参数(ioctl),读声卡缓存(read)录音,写声卡缓存(write)放音,最后关闭声卡(close)。主要是IOTCL函数中相关的命令:SOUND_PCM_WRITE_BITS:设置声卡的量化位数,8或者16,有些声卡不支持16位;SOUND_PCM_READ_B原创 2011-11-22 13:44:45 · 1251 阅读 · 0 评论 -
学习Linux网络编程(1)
这篇教程是用来介绍在Linux下编写网络程序的.-----------------------------------------------------------------Linux 系统的一个主要特点是他的网络功能非常强大。随着网络的日益普及,基于网络的应用也将越来越多。 在这个网络时代,掌握了Linux的网络编程技术,将令每一个人处于不败之地,学习Linux的网络编程,可以让我们转载 2011-10-31 11:16:26 · 1774 阅读 · 2 评论 -
Linux音频编程指南——写得很好
OSS--跨平台的音频接口简介http://bbs.lemote.com/viewthread.php?tid=20410 OSS(Open Sound System)是 unix 平台上一个统一的音频接口, 即只要音频处理应用程序按照OSS的API来编写,那么在移植到另外一个平台时,只需要重新编译即可。OSS (Open Sound System)是unix平台上一个统转载 2011-11-07 14:19:11 · 3963 阅读 · 0 评论 -
Framebuffer的配置及应用——先转载留着,以后一定要弄懂
借助于framebuffer,我们能够在console下面作很多事情。首先下载framebuffer的配置工具fbset:# apt-get install fbset 下载完毕后,配置文件/etc/fb.modes随之产生。比较简单的作法是用万能的vesafb,如果转载 2011-10-17 15:17:14 · 4529 阅读 · 0 评论 -
Framebuffer原理、使用、测试系列文章,非常好的资料,大家一起学习
*一、FrameBuffer的原理* FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。 Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出FrameBuffer这 个设转载 2011-10-17 15:13:30 · 1123 阅读 · 0 评论 -
eclipse显示行号
打开eclipse一个工程文件,使用快捷键ctrl+F10,会出现一个小菜单,里面有各种选项,包括行号,折叠等功能。原创 2011-10-18 10:39:56 · 807 阅读 · 0 评论 -
linux下的动态链接库(DLL)
一、公约1. 库的命名习惯一个linux DLL 有三个不同名字的文件组成soname 文件lib + 链接库名字 + .so + .版本号每当链接库接口改变时都递增版本号。soname 文件其实只是一个符号链接而已,指向他的real na转载 2011-10-18 15:05:26 · 23061 阅读 · 0 评论 -
ARM11硬件编解码例程,实现视频的采集压缩以及传输显示
摘要:介绍基于华恒科技HHS3C6410平台,将摄像头采集的数据通过硬件编码后通过网络发送,客户端(Linux)通过网络实时接收并显示的具体实现;主要介绍S3C6410的H264硬件编码特性和V4L2编程。关键词:S3C6410 H.264 视频监控 V4L20转载 2011-10-18 09:44:29 · 6358 阅读 · 1 评论 -
RTP学习(二)RTP/RTCP/RTSP数据包格式
H.264 视频 RTP 负载格式1. 网络抽象层单元类型 (NALU)NALU 头由一个字节组成, 它的语法如下: +---------------+ |0|1|2|3|4|5|6|7| +-+-+-+-+-+-+-+-+ |F|NRI| Type | +---------------+F:转载 2011-10-20 11:20:52 · 5037 阅读 · 0 评论 -
想成为嵌入式程序员应知道的0x10个基本问题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字转载 2011-10-20 08:35:59 · 691 阅读 · 0 评论 -
RTP实时传输协议学习
由于最近再做基于ARM的多媒体实时传输系统,现在需要使用RTP传输协议进行压缩后的视频传输,从零开始自己搜集了些学习资料,将觉得比较好的一些RTP学习资料整理出来。主要包括:(1)对协议形象的介绍;(2)协议相关的数据格式;(3)协议开发的基本库JRTPLIB;(4)JRTPLIB库的安装使用等;希望对大家有帮助。PS:这些整理的资料见博客内RTP学习(原创 2011-10-20 11:42:33 · 1044 阅读 · 2 评论 -
RTP学习(五):基于 JRTPLIB 库的 RTP 数据传输设计文档
一 . 概述此模块是在基于 S3C2440 的嵌入式开发板上实现对摄像头采集并经过 H.264 压缩过的数据的 RTP 传输,并在接收端 PC 上能正确接收的功能。RTP 即实时传输协议,用于 Internet 上针对多媒体数据流的传输。它通常使用 UDP 协议来传送数据,起初是为了“ multicast ” 传输情况而设计的,目的是提供时间信息和保证流同步,不过现在也用于一对一的传输情况转载 2011-10-20 11:33:43 · 1614 阅读 · 0 评论 -
嵌入式系统开发的模式与流程
1 嵌入式系统的结构1.1 嵌入式系统的硬件架构如图5-1所示,为嵌入式系统硬件模型结构,此系统主要由微处理器MPU、外围电路,以及外设组成,微处理器为ARM嵌入式处理芯片,如ARM7TMDI系列及ARM9系列微处理器,MPU为整个嵌入式系统硬件的核心,决定了整个系统功能和应用领域。外围电路根据微处理器不同而略有不同,主要由电源管理模型、时钟模块、闪存FIASH、随机存储器转载 2011-10-20 08:37:50 · 1086 阅读 · 0 评论 -
Linux音频编程指南
肖文鹏 ([email]xiaowp@263.net[/email]), 自由软件爱好者虽然目前Linux的优势主要体现在网络服务方面,但事实上同样也有着非常丰富的媒体功能,本文就是以多媒体应用中最基本的声音为对象,介绍如何在Linux平台下开发实际的音频应用程序,同时还给出了一些常用的音频编程框架。一、数字音频音频信号是一种连续变化的模拟信号,但计算机只能处理和记录二进制的数字信转载 2011-10-20 08:43:47 · 737 阅读 · 0 评论 -
深入浅出Linux设备驱动之阻塞与非阻塞
深入浅出Linux设备驱动之阻塞与非阻塞阻塞与非阻塞阻塞操作是指,在执行设备操作时,若不能获得资源,则进程挂起直到满足可操作的条件再进行操作。非阻塞操作的进程在不能进行设备操作时,并不挂起。被挂起的进程进入sleep状态,被从调度器的运行队列移走,直到等待的条件被满足。在Linux驱动程序中,我们可以使用等待队列(wait queue)来实现阻塞操作。wait queu转载 2011-10-20 08:46:40 · 682 阅读 · 0 评论 -
RTP学习(一)RTP/RTCP/RTSP协议初探
1) 下面的图形象的说明了RTP相关协议的作用一.产生的背景随着互连网的发展,人们已经不满足于传统的HTTP,FTP和电子邮件等文本信息和服务,而对内容丰富多彩的多媒体信息,服务以及多媒体通信方式提出了需求,包括声音,图象,图形,视频信息等等,而这些不但传输的数据量大而且对交互性和实时性要求很高。这时,基于HTTP的TCP协议无法达到要求,故产生RTP协议来进行转载 2011-10-20 11:17:55 · 1845 阅读 · 0 评论 -
Linux源码安装过程中选项—prefix的作用
源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install),具体的安装方法一般作者都会给出文档,这里主要讨论配置(configure)。Configure是一个可执行脚本,它有很多选项,使用命令./configure –help输出详细的选项列表,如下: -bash-3.00# ./configure --helpUsa原创 2011-11-14 15:41:47 · 669 阅读 · 0 评论 -
为什么两台6410开发板之间无法ping通呢
我现在需要在两台6410开发板之间进行通信,两个开发板安装的是linux系统。开发板A的IP为192.168.0.28,A宿主机的IP为192.168.0.40;开发板B的IP为192.168.0.32,B的宿主机IP为192.168.0.59。现在除了开发板A与开发板B之间无法ping通外,其余的情况都能够ping通,这就奇怪了,既然大家都在一个网段内,而且开发板能够ping通主机,为什么两个开原创 2011-10-26 16:51:35 · 756 阅读 · 0 评论 -
H264解码流程
网上看到的一个H264视频格式的解码测试程序,可以用来参考其逻辑流程。转载 2011-10-27 11:49:28 · 3616 阅读 · 1 评论 -
终于解决了两台6410开发板无法ping通问题
6410开发板之间进行通信,两个开发板安装的是linux系统。开发板A的IP为192.168.0.28,A宿主机的IP为192.168.0.40;开发板B的IP为192.168.0.32,B的宿主机IP为192.168.0.59。现在除了开发板A与开发板B之间无法ping通外,其余的情况都能够ping通,这就奇怪了,既然大家都在一个网段内,而且开发板能够ping通主机,为什么两个开发板之间就不能p原创 2011-10-27 10:17:18 · 1359 阅读 · 0 评论 -
linux 定时器总结
Linux定时器 setitimer 设置“闹钟”2010-04-12 15:19下面这个例子显示了设置闹钟的方法。源代码是:#include #include #include #include /************关于本文档********************************************原创 2012-02-29 17:23:54 · 1225 阅读 · 0 评论