<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yyfwd的博客]]></title><description><![CDATA[不比起步，只比进步。]]></description><link>https://blog.youkuaiyun.com/yyfwd</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yyfwd]]></copyright><item><title><![CDATA[关于1553B总线通讯以及61580RAM存储详解]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/79572682</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/79572682</guid><author>yyfwd</author><pubDate>Thu, 15 Mar 2018 20:17:54 +0800</pubDate><description><![CDATA[     最近在做卫星电源控制器软件开发系统，下位机软件和上位机软件之间的通讯采用的是航天高等级的1553B总线的通讯方式，在存储方面用的是61580片外RAM的存储方式，存储时序要严格按照1553B的通讯协议。1553B的RAM存储区分别有32个接收端子地址，32个发送端子地址，32个广播子地址，32个子地址控制字。现在主要对接受子地址和发送子地址。    在电源控制器端作为RT端，主要任务是将...]]></description><category></category></item><item><title><![CDATA[Linux 设备驱动中的异步通知与异步 I/O(2)]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/51900892</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/51900892</guid><author>yyfwd</author><pubDate>Wed, 13 Jul 2016 19:37:55 +0800</pubDate><description><![CDATA[AIO 概念与 GNU C 库函数 

Linux 系统中最常用的输入/输出（I/O）模型是同步 I/O。在这个模型中，当请求发出之后，应用程序就会阻塞，直到请求满足为止。这是很好的一种解决方案，因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元（CPU）。但是在某
些情况下，I/O 请求可能需要与其他进程产生交叠。可移植操作系统接口（POSIX）异步 I/O（AIO）应用]]></description><category></category></item><item><title><![CDATA[zigbee&云服务器智能家居控制系统]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/51850130</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/51850130</guid><author>yyfwd</author><pubDate>Thu, 07 Jul 2016 12:06:29 +0800</pubDate><description><![CDATA[现在正在做一个智能家居远控项目，我们选用的通信模块是zigbee模块，通过多功能遥控与Zigbee进行数据对接控制，为什么要用到云服务，因为我们市面上遥控器的类型太多，此次我们做到是Zigbee&红外遥控器，Zigbee遥控比红外传输距离远信号更稳定，只要在这个蜂窝信号内无论遥控指向何方都能准确控制。云端主要与手机APP方面对接。


首先我们将每个电器上装上一个zigbee端口，然后遥控这]]></description><category></category></item><item><title><![CDATA[Linux内核在S3C2410平台上移植]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/51035512</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/51035512</guid><author>yyfwd</author><pubDate>Fri, 01 Apr 2016 11:33:31 +0800</pubDate><description><![CDATA[此教程适合2.6.38之前的版本，其中2.6.35之前使用同一yaffs补丁包，2.6.36--2.6.28 yaffs文件系统有所改变，2.6.39之后的暂时不支持，源码下载请到：http://www.kernel.org/
1.解压linux-2.6.34.tar.bz2源码包

#tar jxvf  linux-2.6.34.tar.bz2



2.修改linux-2.6.3]]></description><category></category></item><item><title><![CDATA[Linux中Uboot详解]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/51015467</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/51015467</guid><author>yyfwd</author><pubDate>Wed, 30 Mar 2016 15:40:55 +0800</pubDate><description><![CDATA[在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次：

1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选)，和 Boot Loader 两大部分。

2. Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。

3. 文件系统。包括根文件系统和建立于 Flash ]]></description><category></category></item><item><title><![CDATA[WIFI模块分析]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/51015256</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/51015256</guid><author>yyfwd</author><pubDate>Wed, 30 Mar 2016 15:31:08 +0800</pubDate><description><![CDATA[最近研究Wifi模块，查了不少的相关资料，但发现基本上是基于android2.0版本的的分析，而现在研发的android移动平台基本上都是2.3的版本，跟2.0版本的差别，在Wifi模块上也是显而易见的。2.3版本Wifi模块没有了WifiLayer，之前的WifiLayer主要负责一些复杂的Wifi功能，如AP选择等以提供给用户自定义，而新的版本里面的这块内容基本上被WifiSettings所代]]></description><category></category></item><item><title><![CDATA[C语言中sizeof求结构体大小（让你真正了解结构体成员在内存中的分布情况）]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50886346</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50886346</guid><author>yyfwd</author><pubDate>Mon, 14 Mar 2016 15:50:48 +0800</pubDate><description><![CDATA[今天我在写程序的时候我发现当一个结构体里面的成员变量相同的时候但是顺序不同的时候，所消耗的内存大小是不一样的，
因为我对内存的消耗很敏感，我想它具体是怎么用的 ，于是我具体看了下关于结构体成员在内存里面的分布情况
在这里我在这里记录下我的理解心得：
我们都知道运算符sizeof可以计算出给定类型的大小，对于32位系统来说，sizeof(char) = 1; sizeof(short)=2;s]]></description><category></category></item><item><title><![CDATA[Linux中的find命令精华版（你会用到爱不释手）]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50847985</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50847985</guid><author>yyfwd</author><pubDate>Thu, 10 Mar 2016 16:46:30 +0800</pubDate><description><![CDATA[在我们初学者来说，如果你熟悉了find命令，你会发现你在茫茫的Linux系统中找你需要的文件太简单了。
在此我深深的感受到了这个命令的强大之处，在此我在这里收集了一些比较精华的的，希望对于Linux爱好者有很大的帮助


find命令的参数；



pathname: find命令所查找的目录路径。例如用.来表示当前目录，用/来表示系统根目录。
-print： find命令将匹配]]></description><category></category></item><item><title><![CDATA[Ubuntu中编写脚本]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50847189</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50847189</guid><author>yyfwd</author><pubDate>Thu, 10 Mar 2016 15:59:31 +0800</pubDate><description><![CDATA[今天我在按照要求编译应用程序的时候，一起我都是根据文档上的要求一条条命令去敲，我觉得很麻烦，于是我突发奇想我干嘛不用一个脚本去写呢。


在这里我简单的介绍下写脚本的规范：
首先我们必须的创建一个脚本文件
例如;
vim  filename(文件的名字随便定)
这里我之前想过这个脚本文件的属性有没有必要去定呢，于是我尝试了下，没有硬性要求，因为系统识别文件的属性是根据脚本里面的头来判]]></description><category></category></item><item><title><![CDATA[Linux进程间共享内存通讯]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50826799</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50826799</guid><author>yyfwd</author><pubDate>Tue, 08 Mar 2016 15:07:05 +0800</pubDate><description><![CDATA[今天在跑海思3520D应用程序的时候，发现视频解码的时候老是出现打开共享内存失败，于是自己好好了解了下共享内存的机制，于是自己在这里做了下笔记
使用共享内存基本分四个步骤：
获得共享内存：shmget()->映射共享内存shmat() -->解除映射shmdt()-->删除共享内存shmctl()


于是自己在网上找来了一个例子看了下，并且用虚拟机单独跑了下共享内存的经典例程看了下，才]]></description><category></category></item><item><title><![CDATA[什么是I帧,P帧,B帧]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50774218</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50774218</guid><author>yyfwd</author><pubDate>Tue, 01 Mar 2016 17:26:08 +0800</pubDate><description><![CDATA[视频压缩中，每帧代表一幅静止的图像。而在实际压缩时，会采取各种算法减少数据的容量，其中IPB就是最常见的。
  
简单地说，I帧是关键帧，属于帧内压缩。就是和AVI的压缩是一样的。 P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。
  




I帧表示关键帧，你可以理解为这一帧画面的完整保留；解码时只需要本帧数据就可以完成（因为包含完整画面）




P帧]]></description><category></category></item><item><title><![CDATA[Hi3520D SDK 安装以及升级使用说明]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50736242</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50736242</guid><author>yyfwd</author><pubDate>Thu, 25 Feb 2016 11:11:23 +0800</pubDate><description><![CDATA[1、hi3520D SDK包位置
    在"hi3520D_V100R001***/01.software/board"目录下，您可以看到一个 hi3520D_SDK_Vx.x.x.x.tgz 的文件，
该文件就是hi3520D的软件开发包。


2、解压缩SDK包
    在linux服务器上（或者一台装有linux的PC上，主流的linux发行版本均可以），使用命令：tar -z]]></description><category></category></item><item><title><![CDATA[Hi3511 VSSSDK 安装以及升级使用说明]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50736202</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50736202</guid><author>yyfwd</author><pubDate>Thu, 25 Feb 2016 11:07:51 +0800</pubDate><description><![CDATA[首次安装SDK  （注意红帽子和Ubuntu的脚本不一样 ,我在这个上面吃了点苦头，要看清楚，不然编译会出错，红帽子：#!/bin/sh   Ubunt : #!/bin/bash）


1、Hi3511 SDK包位置
在"Hi3511 DMS V100R001C01B123/soft/Hi3511_VSSDK_V1.1.2.3"目录下，您可以看到
一个 Hi3511_VSSDK_V1.]]></description><category></category></item><item><title><![CDATA[海思3520D芯片硬盘和SD卡挂载说明]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50724618</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50724618</guid><author>yyfwd</author><pubDate>Tue, 23 Feb 2016 17:34:02 +0800</pubDate><description><![CDATA[2016--02--23    天气：阴

今天想要将硬盘机里面的录像转移一部分录像放到SD卡里面做视频分析
在Linux系统需要挂载才能转移文件：
在这里做下笔记记录下挂载的方式，
当内核和文件系统跑起来的时候我们进入到根文件系统目录下我们首先查下我们硬件的设备号；
查看设备好的 命令有几种
cat   /dev 或者 ls  /dev
我们公司的产品挂载命令如下（不通的公司不同]]></description><category></category></item><item><title><![CDATA[内存管理和使用分配]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50600924</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50600924</guid><author>yyfwd</author><pubDate>Wed, 03 Feb 2016 08:55:33 +0800</pubDate><description><![CDATA[今天是16年2月28号，快过年了，今天闲来无事开了下内核方面的代码，以及一些脚本，突然很想弄懂内存是怎么管理的，怎么分区的。
这里我凭自己的理解做了下笔记。
应用程序主要分为三个段，data,text,bss
应用程序未运行的静态状态下： text ，bss ，data(存放用户代码)
应用程序在运行状态下：堆，栈，text，bss，data;
堆和栈只有在应用程序在运行状态下才存在。]]></description><category></category></item><item><title><![CDATA[linux下文件的读写操作（openreadwrite）]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50591974</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50591974</guid><author>yyfwd</author><pubDate>Wed, 27 Jan 2016 09:18:50 +0800</pubDate><description><![CDATA[open（打开文件） 




相关函数 read，write，fcntl，close，link，stat，umask，unlink，fopen 
表头文件 #include
#include
#include 
定义函数 int open( const char * pathname, int flags);
int open( const char * pathname,i]]></description><category></category></item><item><title><![CDATA[statfs获取硬盘使用情况函数详解]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50578663</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50578663</guid><author>yyfwd</author><pubDate>Mon, 25 Jan 2016 11:47:45 +0800</pubDate><description><![CDATA[今天在写海思3520D视频文件保存和读取时，遇到一个问题直接读取硬盘里面的文件用那个函数，当时准备使用fopen，fwrite,fread,函数去实现，但是比较麻烦。
于是我自己度娘了一下发现了 statfs函数可以实现，自己在这里看了下，做了下笔记。

先说statfs结构：
#include     /* 或者  */
int statfs(const char *path, str]]></description><category></category></item><item><title><![CDATA[HI3520D高清机器系统移植详解]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50578040</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50578040</guid><author>yyfwd</author><pubDate>Mon, 25 Jan 2016 11:02:00 +0800</pubDate><description><![CDATA[今天公司来了50块样机新板，然后硬件工程师拿了一块样机让我调试和系统移植下去验证板子的硬件是不是有问题，之前在学校移植过三星S3C2410,因此对过程有些了解，其实不同的开发板都是大同小异的，无非就是FLASH大小不同，以及分区不同而已，
下面我把自己移植的过程做了下笔记希望能为一些遇到相似问题的人有你帮助。
首先移植的时候如果你用的是TFTP协议的话，要一个TFTP传输软件，软件文件设置为你]]></description><category></category></item><item><title><![CDATA[线程通讯中的mutex线程控制详解]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50549611</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50549611</guid><author>yyfwd</author><pubDate>Wed, 20 Jan 2016 16:56:28 +0800</pubDate><description><![CDATA[今天在编写多线程通讯的时候，关于共享资源的操作不冲突，应用互斥锁方面有些不是很清楚，通过编写一些例子和看书的解释说明，在这里我做下我对这方面的总结：
mutex 是一种简单的加锁的方法来控制对共享资源的存取。这个互斥锁只有两种状态，
也就是上锁和解锁，可以把互斥锁看作某种意义上的全局变量。在同一时刻只能有一个线程
掌握某个互斥上的锁，拥有上锁状态的线程能够对共享资源进行操作。若其他线程希望上]]></description><category></category></item><item><title><![CDATA[C语言中exit(0)与exit(1)有什么区别]]></title><link>https://blog.youkuaiyun.com/yyfwd/article/details/50548359</link><guid>https://blog.youkuaiyun.com/yyfwd/article/details/50548359</guid><author>yyfwd</author><pubDate>Wed, 20 Jan 2016 15:12:47 +0800</pubDate><description><![CDATA[C语言中_exit(),exit(0)与exit(1)有什么区别


今天天气有点冷，当我在写消息队列的程序的时候，遇到了结束进程的这个问题，突然脑海里有点混乱，我是用_exit(),还是用exit(1),还是用exit(0)呢，然后自己度娘了一下，整理了一下稍微做了一个总结吧。
_exit()；和exit()主要区别是一个退出进程会清理I/O缓冲区，一个直接结束进程进入到内核中。
下面]]></description><category></category></item></channel></rss>