自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嵌入式与人工智能天地

Linux内核、驱动源码分析、人工智能学习。

  • 博客(132)
  • 收藏
  • 关注

原创 嵌入式GUI系统Enlightenment Foundation Libraries图形库简介

Enlightenment Foundation Libraries的简称为EFL,大名鼎鼎的Tizen平台就是采用EFL作为其基础图形库。EFL图形库是由:Eina、Evas、Eet,Ecore、Edje、Elementary等库构成的一个功能完善的GUI系统图形库

2015-03-01 20:22:39 5258 1

原创 基于嵌入式Linux下GCC编译器__sync_sub_and_fetch_4错误的解决心得

原子操作就是不可再分的操作,在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制。在Linux系统中的GCC或者嵌入式Linux的交叉编译GCC中从4.1.2提供了__sync_*系列的built-in函数,用于提供加减和逻辑运算的原子操作

2015-02-21 12:32:18 12043 3

原创 基于Linux下的GCC编译器的内部预宏定义与__attribute__属性

经常在一些开源的程序中看到一些宏定义,却看不到这些宏定义是在哪些地方定义的,其实有些宏定义是交叉编译工具GCC预定义好的,比如:__GNUC__,__ELF__等等,怎么看到这些宏定义呢

2015-02-20 21:18:31 11939

原创 基于Android2.3.5系统:JNI与HAL实例解析[二]

Android系统下的JNI的全称是:Java Native Interface (JNI),JNI标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。本节主要总结的是Android系统下JNI本地接口函数集合

2015-01-27 16:40:03 1159

原创 基于Android2.3.5系统:JNI与HAL实例解析[一]

Android系统下的JNI的全称是:Java Native Interface (JNI),JNI标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作。

2015-01-25 19:45:58 1798 1

原创 基于Android2.3.5系统:Android.mk文件解析

在Linux下编辑经常要写一个Makefile文件, 可以把这个Makefile文件理解成一个编译配置文件,即指导编译器如何来编译程序,并决定编译的结果是什么。当然在Linux对于大项目而言手工编写Makefile文件是很可怕的一件事,因此出现了automake,autoconf这类工具,而在Android下的Android.mk文件也是这种类似的功能,即Android.mk文件是针对Android的Makefile的文件

2015-01-23 21:52:48 2012 1

原创 基于RTL819X实现的Router/AP的源码分析[一]

详细的关于BOA的介绍,请参考我的博文:嵌入式Linux下BOA网页服务器的移植的详细介绍,BOA WebServer是一款单任务的HTTP服务器,与其他网页服务器不同之处,是当有连接请求到来是,它既不是为每个连接都单独创建进程,也不是采用复制自身进程处理多链接,而是通过建立HTTP请求列表来处理多路HTTP连接请求,同时它只为CGI程序创建新的简称,在最大程度上节省了系统资源,这对于资源受限的嵌入式系统来说非常重要,同时它还自动生成目录、自动解压文件等功能,因此BOA具有很高的HTTP请求处理速度和效率,

2015-01-11 16:10:58 6459 4

原创 基于RTL819X实现的Router/AP的SDK配置和编译

在上一篇博文基于RTL819X实现的Router/AP的SDK简介中有简单的介绍了RTL819X开发包,从Sourceforge网站上下载下来相关的Source,并且解压到虚拟机上(Ubuntu10.04 LTS)

2015-01-10 15:44:44 5283 5

原创 基于RTL819X实现的Router/AP的SDK简介

闲来无事,在一个Sourceforge网站上无意之间看到了RTL819X的Router/AP的SDK,下载下来看了看,原来这个Router/AP是基于开源的BOA Web服务器之上开发的linux下的Router.

2015-01-09 17:14:50 4065 2

原创 嵌入式Linux下MP4视频录制库MP4V2移植和简介

MP4V2的前身是MPEG4IP开源项目中的一个功能库,但是现在MPEG4IP已经不在更新了。但是MP4V2还在更新,并且独立出来了。MP4V2主要是作为MP4文件的录制一个开源库

2014-10-31 21:03:57 5757

原创 嵌入式Linux下开源路由器OpenWRT编译与下载

OpenWRT是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中。 同时,它还提供了100多个已编译好的软件,而且数量还在不断增加,而 OpenWrt SDK 更简化了开发软件的工序

2014-10-26 15:52:24 3745

原创 嵌入式Linux下ALSA音频架构ALSA-lib移植与编译心得

ALSA是一个完全开放源代码的音频驱动程序集,除了像OSS那样提供了一组内核驱动程序模块之外,ALSA还专门为简化应用程序的编写提供了相应的函数库,与OSS提供的基于ioctl的原始编程接口相比,ALSA函数库使用起来要更加方便一些。利用该函数库,开发人员可以方便快捷的开发出自己的应用程序,细节则留给函数库内部处理。当然 ALSA也提供了类似于OSS的系统接口,不过ALSA的开发者建议应用程序开发者使用音频函数库而不是驱动程序的API

2014-10-25 16:36:57 5137

原创 开源GUI-Microwindows之程序入口分析

这里只分析基于WIN32 Message方式部分,对于Nano不是这里的分析重点,相信熟悉Linux内核的,应该都知道在Linux下,不管是设备,驱动,还是进程,都是采用链表的方式将各个宿主数据结构链接起来,而在Microwindows中也采用内似的方式,我们先来复习下Linux的双向链表吧,在Linux内核中,有大量的数据结构需要用到双循环链表,例如进程、文件、模块、页面等。若采用双循环链表的传统实现方式,需要为这些数据结构维护各自的链表,并且为每个链表都要设计插入、删除等操作函数。因为用来维持链表的ne

2014-10-05 20:03:12 2549

原创 嵌入式Linux下BOA网页服务器的移植

BOA WebServer是一款单任务的HTTP服务器,与其他网页服务器不同之处,是当有连接请求到来是,它既不是为每个连接都单独创建进程,也不是采用复制自身进程处理多链接,而是通过建立HTTP请求列表来处理多路HTTP连接请求。

2014-09-28 21:50:27 13501

原创 基于oSIP开源库PartySIP服务器之uClibc库的移植和配置[二]

uClibc 是一个面向嵌入式Linux系统的小型的C标准库。最初uClibc是为了支持uClinux而开发,这是一个不需要内存管理单元的Linux版本,因此适合于微控制器系统。uClibc比一般用于Linux发行版的C库GNU C Library (glibc)要小得多,glibc目标是要支持最大范围的硬件和内核平台的所有C标准,而uClibc专注于嵌入式Linux.很多功能可以根据空间需求进行取舍。

2014-09-20 23:36:21 3265

原创 基于oSIP开源库的SIP代理服务器PartySIP[一]

Partysip 是基于osip实现的的sip服务器。实现了注册服务、重定向、定位、事务状态/无状态机。和eXosip框架思路一样,只是模块实现上面由于功能有所不同而区别。

2014-09-14 14:47:36 7794

原创 DirectFB简介以及移植[一]

DirectFB是一个轻量级的提供硬件图形加速,输入设备处理和抽象的图形库,它集成了支持半透明的视窗系统以及在LinuxFramebuffer驱动之上的多层显示。它是一个用软件封装当前硬件无法支持的图形算法来完成硬件加速的层。DirectFB是为嵌入式系统而设计。它是以最小的资源开销来实现最高的硬件加速性能。

2014-09-13 15:48:15 9124 7

原创 嵌入式Linux系统如何设置TimeZone

作者:EasyWave 时间:2014.06.08类别:Linux内核-TimeZone设置 声明:转载,请保留链接 Linux时钟在概念上类似Windows时钟显示当前系统时间,但在时钟分类和设置上却和Windows大相径庭。Linux将时钟分为系统时钟(SystemClock)和硬件(Real TimeClock,简称RTC)时钟两种。

2014-06-08 17:16:29 8243 2

原创 μCOS-II系统之事件(event)的使用规则及Semaphore实例

在实时多任务系统中,信号量被广泛用于:任务间对共享资源的互斥、任务和中断服务程序之间的同步、任务之间的同步。

2014-05-31 10:30:09 2702

原创 μCOS-II系统之事件(event)的使用规则及MUTEX实例

简单介绍下uCOS-II系统中的事件(Event)的一般使用规则。事件管理函数是μC/OS-II中最多的系统函数, 在μC/OS-II中总共有34个,而且每种事件具有的管理函数数目不同。但是所有的事件都有类似的6个函数,它们是所有事件的基本功能,其函数名类似,使用方法也类似

2014-05-31 09:58:21 11129

原创 DLNA-基于uShare的DMS移植和编译

现在,Wi-Fi联盟已经开始同DLNA联盟(数字生活网络联盟)合作,将Wi-Fi Direct技术融合到DLNA技术里。一旦该技术稳定成型,应用于无线设备上,如智能手机、平板电脑里,它们就可以变身为多媒体服务器,来分享所收集的多媒体资料。这样在无线设备之间流媒体传递就不再需要无线路由器的连接了。而且,即使在不同的Wi-Fi网络上,你同样可以向你朋友的无线设备上直接共享音乐和视频等多媒体信息

2014-04-13 14:01:32 6064 6

原创 基于glib2.12.13编译出现的问题总结

glib库是Linux平台下最常用的C语言函数库,它具有很好的可移植性和实用性。glib是Gtk+库和Gnome的基础。glib可以在多个平台下使用,比如Linux、Unix、Windows等。glib为许多标准的、常用的C语言结构提供了相应的替代物。

2013-10-06 17:42:20 10029 1

原创 基于android2.3.5系统:Linux如何启动Andriod的守护进程init

Linux是如何Andriod的呢,我们都知道在Linux系统启动文件系统的时候,一般会在Linux内核中指定command line

2013-07-28 19:28:51 1631

原创 基于Linux开源VOIP系统LinPhone[六]

在《 基于Linux开源VOIP系统LinPhone[五] 》中,详细的介绍了speex库如果不需要libogg库的详细地修改方法,现在说说,linphone如何编译,前面已经说了。如果只编译不带ui和只有audio版本的linphone,只需要speex、readline、osip、eXosip以及ncurses库即可。

2013-03-31 19:07:57 4261 2

原创 基于Linux开源VOIP系统LinPhone[五]

在《 基于Linux开源VOIP系统LinPhone[四] 》中,简单的介绍了readline、osip、eXosip以及ncurses库的编译,如果需要编译linphone的话,当然在编译speex的时候,可能还需要一个第三方库libogg,不过也可以不用它,那么怎么做呢,我可以打开源码,来修改一下。

2013-03-31 18:32:41 5569

原创 基于android2.3.5系统:Android动态库链接

跟普通的linux基本一样,不过android是采用了自己的glibc,也就是在bionic这个文件中,在这个文件夹中它有libc、libdl、libm、libstdc++、libthread_db以及linker

2013-03-24 15:07:27 3219 1

原创 基于Linux开源VOIP系统LinPhone[四]

在《 基于Linux开源VOIP系统LinPhone[三] 》中,简单的介绍了SPEEX的编译和所需的库文件,如果需要编译linphone的话,最好先只需编译不带UI和不带视频传输的,这样在后期调试的时候,会比较方便,如果想要自己修改linphone的代码..

2013-03-23 18:18:07 3829

原创 基于android2.3.5系统:explicit关键字应用方法详解

在Android2.3.5中,我经常看到explicit这个关键字,开始对explicit关键字,不是很熟悉,对于C++我也是刚刚熟悉没有多久,所以还有很多的知识点,需要去了解。所以从网络上,搜索关于explicit关键字的用法,现在以Android的string8为例,来解释explicit关键字的作用。

2013-02-24 10:31:47 1559

原创 基于android2.3.5系统:Android中native层C++单例模式

单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点

2013-02-16 14:40:08 2288

原创 基于android2.3.5系统:开天辟地Android启动机制[四]

在我的博文基于android2.3.5学习之:开天辟地Android启动机制[三]中,详细的介绍了ueventd的解析机制,在分析andriod2.3.5中的action_list、action_queue、service_list,之前,还是先来详细介绍在Andriod是如何调用内核中的一些函数,比如:chown以及chroot等等。

2013-02-08 18:46:41 2234

原创 基于FT5x06嵌入式Linux电容触摸屏驱动

FT5x06系列ICs是单芯片电容式触摸屏控制器IC,带有一个内置的8位微控制器单元(MCU)。采用互电容的方法,在配合的相互的电容式触摸面板,它支持真正的多点触摸功能。FT5x06具有用户友好的输入的功能,这可以应用在许多便携式设备,例如蜂窝式电话,移动互联网设备,上网本和笔记本个人电脑。

2013-02-06 11:30:55 20581 2

原创 基于Linux开源VOIP系统LinPhone[三]

在LinPhone这个系统中,第二个我们要介绍的第三方库组件:speex,Speex是一套主要针对语音的开源免费,无专利保护的音频压缩格式。Speex工程着力于通过提供一个可以替代高性能语音编解码来降低语音应用输入门槛 。另外,相对于其它编解码器,Speex也很适合网络应用,在网络应用上有着自己独特的优势

2013-02-05 14:18:43 6453

原创 基于Linux下的开源wavplay播放器

wave文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”,WAVE文件是由若干个Chunk组成的。

2013-02-05 13:46:41 4885

原创 基于android2.3.5系统:Andriod与Linux交叉编译工具[二]

由于我是从网络上直接下载飞凌的6410下的Andriod2.3.4版本的源码,而且这个版本有个好处就是,它将jdk21.6.0_23也一并放在android的源码下,因此,就不需要再去安装Java JDK,如果是在Linux来开发Android应用程序的话,那么还是安装一下比较好些。

2013-01-27 18:47:09 1879

原创 基于android2.3.5系统:Andriod与Linux交叉编译工具[一]

以手边的Andriod2.3.4和linux2.6.36版本为例,下一步自己想尝试将Android2.3.4移植到android2.3.5或者更高版本的Android4.0上来,这是后话,这里只说说,Andriod下的Linux内核的编译,需要注意的是:编译Andriod系统的Linux内核的交叉编译工具,需要用到的是:arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2,同时设置下环境变量

2013-01-27 15:36:31 2459

原创 基于Linux开源VOIP系统LinPhone[二]

在LinPhone这个系统中,第一个我们要介绍的第三方库组件:oRTP --a Real-time Transport Protocol (RTP,RFC3550) library,oRTP是基于LGPL下的开源的实时传输协议,对于RTP协议主要是用于音频和视频的网络实时传输。有两种方式:UDP和TCP。

2013-01-26 17:13:25 4180 1

原创 基于Linux与Busybox的Reboot命令流程分析

这段时间,在忙到一个项目时,需要在busybox中用到reboot命令,开始在busybox中的shell中输入reboot命令,始终如下的信息,然后就停止在那里了,无法重启...为了彻底的弄明白这个问题,我在网络上找了很久,终于有个人写的一个reboot流程分析,我就借花献佛.在这里重新分析下busybox是如何运行这个命令

2013-01-26 13:25:17 34706 17

原创 基于Linux开源VOIP系统LinPhone[一]

LinPhone是一个网络电话或者IP语音电话(VOIP),是一款遵循GPL的开源的网络视频电话系统,其主要如下:使用linphone,我们可以在互联网上随意的通信,通过语音、视频、即时文本消息。linphone使用SIP协议,是一个标准的开源网络电话系统,你能将linphone与任何基于SIP的VoIP运营商连接起来,包括我们自己开发的免费的基于SIP的Audio/Video服务器。LinPhone是一款自由软件(或者开源软件),你可以随意的下载和在LinPhone的基础上二次开发。LinPhon

2013-01-26 11:56:47 20043

原创 基于ARM嵌入式Linux网络编程实例解析

这段时间,因为项目的需要,了解了一下USBtoNet的驱动,同时采用IOCTL来设置MAC的地址,检测网卡的连接状态等等,因此,就从网络上了解了一下关于网络编程方面的知识.

2013-01-19 17:15:15 8609

原创 基于Android2.3.5系统:Java JDK ADT Android SDK for Eclipse环境安装

由于前一段时间,左脚足背做手术,因此,关于Android2.3.5学习系列的文章,很久没有博客中更新,今天将基于Eclipse for Android的基于Windows下的SDK开发环境的安装,主要有以下几个部分需要安装和设置

2013-01-03 14:57:04 5632

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除