<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[seraphbest的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/seraphbest</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; seraphbest]]></copyright><item><title><![CDATA[DSP入门知识]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/7557907</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/7557907</guid><author>seraphbest</author><pubDate>Fri, 11 May 2012 16:43:34 +0800</pubDate><description><![CDATA[偷偷滴找个实习工作，要弄DSP，从零开始，整理了些入门知识，包括网摘的和书上摘的，和初学者共勉一下。
主要的DSP芯片种类
1．TI公司的DSP芯片
对于TI的DSP系列产品介绍如下：
1） C5000系列（定点、低功耗）：相比其它系列的主要特点是低功耗，所以最适合个人与便携式上网以及无线通信应用，如手机、PDA、GPS等应用。处理速度在80MIPS-- 400MIPS之间。C5000系列]]></description><category></category></item><item><title><![CDATA[RF2401在6410开发板linux系统下的驱动（一）]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/7110205</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/7110205</guid><author>seraphbest</author><pubDate>Wed, 28 Dec 2011 22:22:25 +0800</pubDate><description><![CDATA[（一）6410在linux下spi驱动及测试
 
还有2周就过年了，学校的事没有进展，弄点自己想弄滴，手头有一块RF2401的无线模块，之前是在arm9的裸机用了一下，现在想通过6410开发板来使用这个无线模块，因为无线模块式spi接口的，板子下/dev没有对应的设备，先将spi驱动编译进入内核
 
主机：    ubuntu               2.6.32
开发板：友善之臂6]]></description><category></category></item><item><title><![CDATA[开发板运行aodv算法]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6936945</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6936945</guid><author>seraphbest</author><pubDate>Fri, 04 Nov 2011 19:03:23 +0800</pubDate><description><![CDATA[下午在开发板运行了aodv算法，过程如下：
 
环境：
 主机      ubuntu 10.04         2.6.32
 开发板 友善之臂的6410    2.6.38
 
查看无线网为wlan0
[root@FriendlyARM /]# iwconfig      
lo        no wireless extensions.
 
eth0      no]]></description><category></category></item><item><title><![CDATA[交叉编译aodv路由算法]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6936034</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6936034</guid><author>seraphbest</author><pubDate>Fri, 04 Nov 2011 15:37:33 +0800</pubDate><description><![CDATA[交叉编译aodv路由算法
将aodv路由算法移植到友善之臂的6410开发板上
这个aodv算法可以在内核版本为2.6.32的ubuntu环境下直接运行编译通过。
友善之臂的6410开发板的内核是2.6.38 
 

首先搭建好arm-linux-gcc编译环境
友善之臂的6410光盘附有搭建方法：
Step1：将光盘Linux 目录中的arm-linux-gcc-4.5.1-v6-]]></description><category></category></item><item><title><![CDATA[linux重要头文件]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6819040</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6819040</guid><author>seraphbest</author><pubDate>Sun, 25 Sep 2011 11:27:12 +0800</pubDate><description><![CDATA[1、 一些头文件的作用：
：ANSI C。提供断言，assert(表达式)
：GCC。GTK，GNOME的基础库，提供很多有用的函数，如有数据结构操作函数。使用glib只需要包含
：GCC。文件夹操作函数。struct dirent,struct DIR,opendir()]]></description><category></category></item><item><title><![CDATA[《c++程序性能优化》——操作系统的内存管理]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6220831</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6220831</guid><author>seraphbest</author><pubDate>Thu, 03 Mar 2011 15:32:00 +0800</pubDate><description><![CDATA[<br />第5章 操作系统的内存管理<br />      长期以来内存是重要的计算机资源。在内存有限的情况下，虚拟内存的技术就引入了。<br /> <br />~window内存管理 ~ <br />   win32为每一个win32进程提供了私有且基于页的4GB（32位）大小的线性虚拟地址空间<br /> 2进程工作集 <br />   频繁的调页操作会引起磁盘i/o，会大大的降低程序的运行效率对于每一个进程，虚拟内存管理器都会将其一定的内存驻留在内存里，并跟踪性能指标。工作集会动态变化的，如果所执行]]></description><category></category></item><item><title><![CDATA[《c++程序性能优化》——常用数据结构性能分析]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6218711</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6218711</guid><author>seraphbest</author><pubDate>Wed, 02 Mar 2011 17:15:00 +0800</pubDate><description><![CDATA[第4章 常用数据结构性能分析1从遍历，插入，删除，排序，查找5个基本操作，分别对数组，链表，哈希表和二叉树的性能做分析。~遍历~数组：遍历很容易，无论升序和倒序，而且初始位置从任意K开始。链表：通过跟踪指针的方式来完成整个链表的遍历。双向连链表课以支持升序和倒序。哈希表：如果我们事先知道Key值，可以通过哈希函数来找到非空的桶，进行遍历，否则的哈遍历哈希数组的方式访问每个桶。二叉树：有三种方法，前序，中序，后序。递归实现遍历。随着树的深度的增加程序对栈的使用越多，而栈是有限空间的。~插入~数组：插入新节点西]]></description><category></category></item><item><title><![CDATA[《c++程序性能优化》——c++中语言特性中的性能分析]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6216481</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6216481</guid><author>seraphbest</author><pubDate>Tue, 01 Mar 2011 20:52:00 +0800</pubDate><description><![CDATA[第三章 c++中语言特性中的性能分析1构造函数和析构函数调用构造函数的顺序（1）递归从父类对象开始（2）然后是成员变量（3）执行函数构造函数堆和函数体创建对象一般有两个方式（1）从线程的栈中创建，也成为局部对象  {    .....   Object obj;   .....  }（2）从全局堆里创建。  {   .....   Object* obj=new Object;   .....   delete obj;   .....   }  2继承和虚拟函数     怎样写动态绑定的继承体系。    ]]></description><category></category></item><item><title><![CDATA[《c++程序性能优化》——C++对象模型]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6213880</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6213880</guid><author>seraphbest</author><pubDate>Mon, 28 Feb 2011 18:41:00 +0800</pubDate><description><![CDATA[第二章 C++对象模型 ~内存区~一般分为以下五个部分1全局/静态变量区2常量数据区3代码区4栈5堆全局变量和静态变量，以及局部的静态变量储存在全局/静态变量区。字符串存储在常量数据区，而且是4个字节对齐的。程序中的其他字符串常量，如printf（）中函数中的格式串，也是存储在常量数据区中。通过new和malloc或得的内存是在堆中的内存。堆上分配内存是以16字节对齐的。~全局/静态变量区和常量数据区~全局/静态变量区和常量数据区是程序编译阶段已经分配好的，在整个程序运行的过程中是始终存在的，用于存储全局变]]></description><category></category></item><item><title><![CDATA[关于23种设计模式的有趣见解]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6202797</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6202797</guid><author>seraphbest</author><pubDate>Wed, 23 Feb 2011 16:01:00 +0800</pubDate><description><![CDATA[<br />关于23种设计模式的有趣见解 <br />　　创建型模式 <br />　　1、ABSTRACT FACTORY—追MM少不了请吃饭了，麦当劳的套餐和肯德基的套餐都是MM爱吃的东西，虽然口味有所不同，但不管你带MM去麦当劳或肯德基，只管向服务员说“两个B套餐”就行了。麦当劳和肯德基就是B套餐的Absctract Factory, B套餐里含有汉堡, 鸡翅和饮料. 麦当劳或肯德基会根据B套餐的规格, 让汉堡Factory, 鸡翅Factory, 饮料Factory分别生产对应B套餐的材料. <br ]]></description><category></category></item><item><title><![CDATA[多机器人初始化程序]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6059041</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6059041</guid><author>seraphbest</author><pubDate>Mon, 06 Dec 2010 18:30:00 +0800</pubDate><description><![CDATA[<br />#include "Aria.h"<br />int main(int argc, char** argv)<br />{<br />  int ret;<br />  std::string str;<br /> <br />  // get hostnames and port numbers for connecting to the robots.<br />  ArArgumentParser argParser(&argc, argv);<br />  char* host1 = a]]></description><category></category></item><item><title><![CDATA[机器人圆形队列算法（待完成2）]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6048855</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6048855</guid><author>seraphbest</author><pubDate>Wed, 01 Dec 2010 22:06:00 +0800</pubDate><description><![CDATA[<br />最近学习上的事比较多，复习随机过程，还有准备今天下午计算机系统机构的讲课，最主要是这个机器人圆形队列算法的具体函数实现写了加起来有10来个小时吧，今天终于把一些难点搞定，之前总没有意识到八个声纳是有角度的，每次测坐标的时候都没有加修正值，走了很多了弯路，现在到了正轨，还有对于机器人自我坐标清零函数一直没有在开发库里找到，害的我在几千行的开发库的原cpp文档找对应的函数，眼睛都为此上升的几度，最中和巧合的在用户培训手册看到了这个函数接口，众里寻他千百度，得来全不费工夫哈，程序还没完成，但都是一些小]]></description><category></category></item><item><title><![CDATA[机器人圆形队列算法（待完成）]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6025521</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6025521</guid><author>seraphbest</author><pubDate>Sun, 21 Nov 2010 20:38:00 +0800</pubDate><description><![CDATA[ArActionKeydrive control;ArPose min_pose;ArPose max_pose;ArPose var_pose;ArPose mid_pose;ArPose ori_pose;   //原点 originint min,max,var;int i;int r;  //期望的半径int v;  //一次最多移动的距离while(1){min=5000;max=0;for(i=0;i{    control.left();  //左转一度    for (i = 0; i   ]]></description><category></category></item><item><title><![CDATA[对机器人队列形成问题]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6013225</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6013225</guid><author>seraphbest</author><pubDate>Tue, 16 Nov 2010 20:47:00 +0800</pubDate><description><![CDATA[xiaoping yun分析了一种圆形队形形成算法：Step1 决定出距离自己最远和最近的机器人Rf和RcStep2 计算出从它当前的位置到Rf和Rc连成线段的中点Pm之间的距离dStep3 当d-r>0时朝着Pm移动距离min(d-r,v);否则，机器人远离Pm移动min(r-d,v)。其中v是机器人一次能移动的最大距离，r是系统希望完成的距离。]]></description><category></category></item><item><title><![CDATA[神一般的const]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6011137</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6011137</guid><author>seraphbest</author><pubDate>Mon, 15 Nov 2010 21:54:00 +0800</pubDate><description><![CDATA[const在前面  1  const int n； //n是const 2　const char *p; //*p是const, p可变 3　const (char *) p;//p是const,*p可变 4　const char* const p; //p和*p都是const const在后面，与上面的声明对等  5  int const n.； // n.是const 6　char const * p.;// *p.是const, p.可变 7　(char*) const p.;// p.是const,]]></description><category></category></item><item><title><![CDATA[花了一晚上的时间把程序调通~~~~]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6007575</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6007575</guid><author>seraphbest</author><pubDate>Sat, 13 Nov 2010 22:23:00 +0800</pubDate><description><![CDATA[今天这个程序花时间好长啊有了一点程序的心得1。一定要先懂得程序的架构，这样才能事半功倍2。良好的书写习惯是必须的3。在类里面的函数实现用写在程序最后的显示方式书写4。括号要写清楚5。变量名不要起类似的6。函数的参量是不是指针要清楚代码如下：#include#include#includeusing namespace std;//中间层计数类class Expr_node {friend ostream& operatorfriend class Expr;public:int use;   //计数器vi]]></description><category></category></item><item><title><![CDATA[多机器人操作平台]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6006517</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6006517</guid><author>seraphbest</author><pubDate>Sat, 13 Nov 2010 11:07:00 +0800</pubDate><description><![CDATA[今天实际测试了一个自己以前在仿真环境下写好的多机器人操作，内容是一个控制，一个漫游。又一次小有成就感。哈哈~~代码如下：#include "Aria.h"ArActionGroup *teleop;int main(int argc, char** argv){  int ret;  std::string str;  // get hostnames and port numbers for connecting to the robots.  ArArgumentParser argParser(&ar]]></description><category></category></item><item><title><![CDATA[《c++沉思录》-day3]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6006489</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6006489</guid><author>seraphbest</author><pubDate>Sat, 13 Nov 2010 10:55:00 +0800</pubDate><description><![CDATA[今天看到第八章 一个面向对象的程序范例1问题描述我们希望将四则运算的表达式来调用合适的函数来创建一个数(-5)*(3+4)为          *        /   /      -      +     /      /  /   5      3    4这样的树2面向对象的解决方案 我们需要一个类来表示节点这个概念，这个类并不是一个具体的节点，我们所有的实际的类型都将从这个公共的基类派生出来。class Expr_node { friend ostream& operatorprotected: ]]></description><category></category></item><item><title><![CDATA[静态绑定和动态绑定]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6004648</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6004648</guid><author>seraphbest</author><pubDate>Fri, 12 Nov 2010 12:17:00 +0800</pubDate><description><![CDATA[C++中，非虚函数都是静态绑定，而虚函数却是动态绑定。       为了能够更清楚地了解静态绑定与动态绑定，我们可以看下面这个例子：#includeusing namespace std;class B{public:      void fun(){        cout}     };class D: public B{public://void fun()//{        //cout//}    };int main(){D x;    B *pB = &x;    pB->fun();   ]]></description><category></category></item><item><title><![CDATA[关于进程]]></title><link>https://blog.youkuaiyun.com/seraphbest/article/details/6001375</link><guid>https://blog.youkuaiyun.com/seraphbest/article/details/6001375</guid><author>seraphbest</author><pubDate>Wed, 10 Nov 2010 22:03:00 +0800</pubDate><description><![CDATA[看到ppt有几段话，关于进程的，讲的很犀利，照抄如下Fork()－父亲克隆一个儿子。执行fork()之后，兵分两路，两个进程并发执行。
Exec()－新进程脱胎换骨，离家独立，开始了独立工作的职业生涯。
Wait()－等待不仅仅是阻塞自己，还准备对僵死的子进程进行善后处理。
Exit()－终止进程，把进程的状态置为“僵死”，并把其所有的子进程都托付给init进程，最后调用schedule()函数，选择一个新的进程运行。 随着一句fork，一个新进程呱呱落地，但这时它只是老进程的一个克隆。然后，随着ex]]></description><category></category></item></channel></rss>