<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wolfliuming</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wolfliuming]]></copyright><item><title><![CDATA[RTSP客户端学习（一）——live555库的移植和验证]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/11535153</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/11535153</guid><author>wolfliuming</author><pubDate>Tue, 10 Sep 2013 18:26:05 +0800</pubDate><description><![CDATA[因为项目原因需要在海思Hi3531平台上实现RTSP客户端，之前没接触过流媒体，作为小白，就记录下学习过程吧。
客户端和服务器端均采用live555，之前尝试过Darwin Stream Server作为服务器，可以播放样例视频文件，不能播放塞进去的H264文件。是Darwin不支持还是其他原因？未做深究
1、  在桌面版linux系统中安装live555，这个很简单
下载源码后解压，进入l]]></description><category></category></item><item><title><![CDATA[RTSP客户端学习（一）——对live555库的移植和验证]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/11535079</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/11535079</guid><author>wolfliuming</author><pubDate>Tue, 10 Sep 2013 18:22:20 +0800</pubDate><description><![CDATA[因为项目原因需要在海思Hi3531平台上实现RTSP客户端，之前没接触过流媒体，作为小白，就记录下学习过程吧。
客户端和服务器端均采用live555，之前尝试过Darwin Stream Server作为服务器，可以播放样例视频文件，不能播放塞进去的H264文件。是Darwin不支持还是其他原因？未做深究
1、  在桌面版linux系统中安装live555，这个很简单
下载源码后解压，进入l]]></description><category></category></item><item><title><![CDATA[海思Hi3520开发环境搭建]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/7197216</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/7197216</guid><author>wolfliuming</author><pubDate>Thu, 12 Jan 2012 19:52:17 +0800</pubDate><description><![CDATA[刚到手的Hi3520开发板，拿来第一件事当然是搭环境，本来调了那么多板子，这不是小菜一碟嘛，可就是挂NFS还浪费了快一个小时，郁闷的了，这倒也好，顺着Hi3520的脉络，就把这个环境搭建过程记录一下，权当记个笔记噻。。。
买的是雅仪科技的Hi3520开发板，板子还是蛮好看滴，6800大洋。因为最多要驱动八块sata硬盘，所以板子采用的是计算机的ATX电源。拿过来之后立马接上串口，上电，擦，毫无反]]></description><category></category></item><item><title><![CDATA[关于Zilog ZA9L0x烧写]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/6589927</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/6589927</guid><author>wolfliuming</author><pubDate>Thu, 07 Jul 2011 11:27:28 +0800</pubDate><description><![CDATA[前天拿到的Zilog Zatara(ZA9l0x)的开发平台，刚拿到的时候那个鸡冻啊，这外包装整个就一核武器钥匙箱包装嘛，导师给的任务是尽快把环境搭起来，评估一下这个平台，这个平台是上linux的，所以我想这个对于我来说应该是轻车熟路吧，但事实上还是有些波折，毕竟是大公司做的专用]]></description><category></category></item><item><title><![CDATA[Hi3515——关于I2C和DS1339]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/6400378</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/6400378</guid><author>wolfliuming</author><pubDate>Fri, 06 May 2011 17:05:00 +0800</pubDate><description><![CDATA[<br />Hi3515的RTC模块貌似有BUG，文档上建议不要使用，所以只能外扩一个DS1339来作为实时时钟，但是找到海思给的linux源码，I2C和DS1339的驱动都没改，在make menuconfig里面改了一下，/dev目录下没反应，只能跟到bus_for_each_dev函数中，发现DS1339的驱动压根就么有挂到I2C的设备链表中，更纠结的是，连I2C的设备描述符都么有，悲剧鸟，难不成就像之前的串口一样又要自己动手。。。<br />仔细想了想，不对，我们A/D那块也是用I2C控制的，如果I]]></description><category></category></item><item><title><![CDATA[关于Android平台下的H264客户端]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/6311637</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/6311637</guid><author>wolfliuming</author><pubDate>Sat, 09 Apr 2011 13:01:00 +0800</pubDate><description><![CDATA[之前开发了个Android平台下解码H264的客户端，现在回头来总结下吧：1、界面这个没什么好说的，任何平台下都很简单。。。2、解码器的移植找了一个从ffmpeg裁剪出来的H264解码库，然后移植到Android平台，这里要学习下JNI的知识。3、Java多线程了解java多线程的几种方式，我这里用的两个线程，一个从服务器收数据送到共享的缓冲区，另外一个从缓冲区取数据送到解码器解码并将图像输出。4、Android网络编程这里直接用的socket收发，还是蛮简单的，然后手机和服务器通信是通过wifi，我们只要]]></description><category></category></item><item><title><![CDATA[Hi3515 UART2和UART3驱动加载]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/6294397</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/6294397</guid><author>wolfliuming</author><pubDate>Fri, 01 Apr 2011 14:52:00 +0800</pubDate><description><![CDATA[<br />这里主要想讲下海思Hi3515的UART2和UART3是如何被加载到内核中的，因为正在做一个项目需要使用四个串口，但海思提供的linux源码中只加载了两个串口的驱动，找了一圈，发现源码中没有现成的UART2和UART3的代码可以使用，只能自己动手改啦啊。。。<br />首先关于linux硬件模块的加载可以参考下面这篇博文：<br />http://hi.baidu.com/jackyu/blog/item/a89ba634e31418bcd1a2d3e5.html<br />好吧，我们进入正题，]]></description><category></category></item><item><title><![CDATA[Ubuntu9.04下搭建Android开发环境]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/6151996</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/6151996</guid><author>wolfliuming</author><pubDate>Wed, 19 Jan 2011 11:42:00 +0800</pubDate><description><![CDATA[ubuntu版本为9.04，安装JDK 1.5、Eclipse 3.6(helios-SR1)、ADT、Android SDK1、安装java ，在终端下输入命令：sudo apt-get install sun-java6-bin注：如果系统为64位，则须安装 ia32-libs ：sudo apt-get install ia32-libs。在安装时将被询问是否接受 Java license，接受。2、安装jdk1.51)为了安装JDK1.5，需要添加如下内容到/etc/apt/sources.list]]></description><category></category></item><item><title><![CDATA[信号量的P操作和V操作]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/6100700</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/6100700</guid><author>wolfliuming</author><pubDate>Mon, 27 Dec 2010 15:09:00 +0800</pubDate><description><![CDATA[1962年，狄克斯特拉离开数学中心进入位于荷兰南部的艾恩德霍芬技术大学(Eindhoven Technical 
University)任数学教授。在这里，他参加了X8计算机的开发，设计与实现了具有多道程序运行能力的操作系统——THE Multiprogramming 
System。THE是艾恩德霍芬技术大学的荷兰文Tchnische Hoogeschool Eindhov 
–en的词头缩写。狄克斯特拉在THE这个系统中所提出的一系统方法和技术奠定了计算机现代操作系统的基础，尤其是关于多层体系结构]]></description><category></category></item><item><title><![CDATA[四相八位步进电机]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/6087070</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/6087070</guid><author>wolfliuming</author><pubDate>Mon, 20 Dec 2010 15:44:00 +0800</pubDate><description><![CDATA[<br /><br /> <br />上图为八相位时序状态图，步进电机的时序状态转换为：1001--1000--1100--0100--0110--0010--0011--0001--1001，为反序循环，并且每四个状态驱动步进电机走"one dot line",即一个点高度的整行，我使用的打印机为富士通的FTP-628MCL101,一行为384个点，所以每四个状态位步进电机走1*384个点。<br />下面贴上我的步进电机控制部分的代码：<br /><br />for(j=0;j<steps;j++)//]]></description><category></category></item><item><title><![CDATA[可爱的中断]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/6077969</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/6077969</guid><author>wolfliuming</author><pubDate>Wed, 15 Dec 2010 16:24:00 +0800</pubDate><description><![CDATA[终端的测试都已经进入尾声了，暴露出来一个大问题，以前的测试都是在比较纯净的网络中进行的，现在放入真实的后台进行，刷卡的成功率变的只有三分之一甚至更低，那个纠结啊，尝试了多种方法，在网络底层纠结了一点时间，最终把目标锁定在网络低级中断上，这个网络低级中断的处理程序干的事情还真是多啊，而且网线一插上网络这块肯定是不停进中断的，消耗了CPU太多资源，而刷卡器接收数据中断的时钟是由刷卡器芯片提供的，这样的话必然会造成时序上的错位，刷卡肯定会错了啊，看来理论上可以说的通了，还得从实践上来证明它，这个简单，我在MAC的]]></description><category></category></item><item><title><![CDATA[o a so lo la]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/6059219</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/6059219</guid><author>wolfliuming</author><pubDate>Mon, 06 Dec 2010 20:14:00 +0800</pubDate><description><![CDATA[<br />o: 编译的目标文件<br />a: 静态库，其实就是把若干o文件打了个包<br />so: 动态链接库（共享库）<br />lo: 
使用libtool编译出的目标文件，其实就是在o文件中添加了一些信息<br />la: 
使用libtool编译出的库文件，其实是个文本文件，记录同名动态库和静态库的相关信息]]></description><category></category></item><item><title><![CDATA[U-boot启动代码start.s中用到的汇编指令详解]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/6050163</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/6050163</guid><author>wolfliuming</author><pubDate>Thu, 02 Dec 2010 14:59:00 +0800</pubDate><description><![CDATA[<br />LDR 指令<br />LDR 指令的格式为：<br />LDR{条件} 目的寄存器，<存储器地址><br />LDR 指令用于从存储器中将一个32 位的字数据传送到目的寄存器中。该指令通常用于从存储器<br />中读取32 位的字数据到通用寄存器，然后对数据进行处理。当程序计数器PC 作为目的寄存器时，<br />指令从存储器中读取的字数据被当作目的地址，从而可以实现程序流程的跳转。<br />指令示例：<br />LDR R0，[R1] ；将存储器地址为R1 的字数据读入寄存器R0。<br ]]></description><category></category></item><item><title><![CDATA[U-boot源码分析之start.s]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/6050117</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/6050117</guid><author>wolfliuming</author><pubDate>Thu, 02 Dec 2010 14:45:00 +0800</pubDate><description><![CDATA[硬件平台为东南大学自主研发的ARM720T芯片SEP4020代码目录：cpu/sep4020/start.s#include #include /* * Jump vector table *///_start是GNU汇编器默认的入口标签，.global将_start声明为外部程序可访问的.globl _start//向量跳转表，每条占一个字节，地址范围为0x00000000-0x00000020//ldr和str指令是用来在存储器和寄存器传递数据的，两者方向相反//ldr为存储器到寄存器，str为寄存器到]]></description><category></category></item><item><title><![CDATA[ARM7TDIMI中TDMI的意思]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/6049758</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/6049758</guid><author>wolfliuming</author><pubDate>Thu, 02 Dec 2010 12:52:00 +0800</pubDate><description><![CDATA[<br />ARM7TDMI 是ARM7 的基础上的改进版本，除了有ARM7 的32 位集成芯片的基本特色外，<br />它还有如下特点：<br /><br /> Thumb16 位压缩指令集。<br /> Debug 支持功能，使处理器能够暂停以响应一个debug 请求。<br /> Multiplier，增加了硬件乘法器，执行功能更强大，可以产生64 位的数据结果。<br /> ICE 硬件，embedded ICE 给出BREAKPOINT 和WATCHPOINT 支持。<br />这也是AR]]></description><category></category></item><item><title><![CDATA[逆波兰表示法]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/6002342</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/6002342</guid><author>wolfliuming</author><pubDate>Thu, 11 Nov 2010 12:20:00 +0800</pubDate><description><![CDATA[<br />逆波兰记法中，操作符置于操作数的后面。例如表达“三加四”时，写作“3 4 +”，而不是“3 + 4”。如果有多个操作符，操作符置于第二个操作数的后面，所以常规中缀记法的“3 - 4 + 5”在逆波兰记法中写作“3 4 - 5 +”：先3减去4，再加上5。使用逆波兰记法的一个好处是不需要使用括号。例如中缀记法中“3 - 4 * 5”与“（3 - 4）*5”不相同，但后缀记法中前者写做“3 4 5 * -”，无歧义地表示“3 (4 5 *) −”；后者写做“3 4 - 5 *”。<br />逆波兰表]]></description><category></category></item><item><title><![CDATA[signal函数的使用]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/5987987</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/5987987</guid><author>wolfliuming</author><pubDate>Thu, 04 Nov 2010 18:47:00 +0800</pubDate><description><![CDATA[<br /><br />signal系统函数调用提供了一种最简单的范例。然而，由于C原形声明的缘故使它看起来比实际复杂。signal函数将一个给定的函数和一个特定的信号联系。这里是FreeBSD中的定义(和一个typedef一起): <br />引用： <br />typedef void (*sig_t) (int); <br />sig_t   signal(int sig, sig_t func); <br /><br />第一个参数是目标信号。func参数是一个指针，指向某个处理该信号的函数。这个处]]></description><category></category></item><item><title><![CDATA[嵌入式存储器和文件系统（转）]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/5956301</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/5956301</guid><author>wolfliuming</author><pubDate>Thu, 21 Oct 2010 12:40:00 +0800</pubDate><description><![CDATA[    嵌入式系统与通用PC机不同，一般没有硬盘这样的存储设备而是使用Flash闪存芯片、小型闪存卡等专为嵌入式系统设计的存储装置，本文分析了嵌入式系统中常用的存储设备及其管理机制，介绍了常用的基于FLASH的文件系统类型。2． 基于Flash的文件系统
     
鉴于Flash存储介质的读写特点，传统的Linux文件系统己经不适合应用在嵌入式系统中，像Ext2fs文件系统是为像IDE那样的块设备设计的，这些设备的逻辑块是512字节、1024字节等大小，没有提供很好的扇区擦写支持，不支持损耗平衡，没有]]></description><category></category></item><item><title><![CDATA[可重入函数与不可重入函数(转）]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/5949450</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/5949450</guid><author>wolfliuming</author><pubDate>Mon, 18 Oct 2010 18:45:00 +0800</pubDate><description><![CDATA[<br /><br />    可重入函数主要用于多任务环境中，一个可重入的函数简单来说就是可以被中断的函数，也就是说，可以在这个函数执行的任何时刻中断它，转入OS调度下去执行另外一段代码，而返回控制时不会出现什么错误；而不可重入的函数由于使用了一些系统资源，比如全局变量区，中断向量表等，所以它如果被中断的话，可能会出现问题，这类函数是不能运行在多任务环境下的。<br />    也可以这样理解，重入即表示重复进入，首先它意味着这个函数可以被中断，其次意味着它除了使用自己栈上的变量以外不依赖于任何环境（包括]]></description><category></category></item><item><title><![CDATA[十二星座的编程语言，不知道哪个Coding哥总结的哎，哈哈。。。]]></title><link>https://blog.youkuaiyun.com/wolfliuming/article/details/5943984</link><guid>https://blog.youkuaiyun.com/wolfliuming/article/details/5943984</guid><author>wolfliuming</author><pubDate>Fri, 15 Oct 2010 18:22:00 +0800</pubDate><description><![CDATA[C——白羊座像Linus 
Tovards一样，虽然牛逼，但脾气不怎么好 C#——金牛座各方面都还不错，就是钱是个问题 Javascript——双子座很简单，很漂亮，很有趣，很不靠谱PHP——巨蟹座得一温柔体贴好用开源如PHP，夫复何求Java——狮子座知道您牛逼，自个儿得瑟去吧Perl——处女座号称像诗一样的语言，但是各种叽歪的符号会让你湿Python——天秤座一个字，漂亮 C++——天蝎座要不你搞定它，要不它搞定你 Matlab——射手座很活力，很广泛，很花心SQL——摩羯座虽然也很牛逼，但是也压抑的]]></description><category></category></item></channel></rss>