自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JuanA1的专栏

金字塔最底层之IT民工的技术点滴

  • 博客(92)
  • 资源 (4)
  • 收藏
  • 关注

原创 Boost学习系列5-字符串处理-(上)

一、概述    最近工作又开始忙了,额外学习boost的机会也变少了很多,再加上在使用Boost时出现了很多编译错误的问题,让写文章的过程变得不可预测了。但我还是很期待这一部分,这是在平时应用中最常见的,也是boost的看家本领了,将会着重介绍。在标准 C++ 中,用于处理字

2011-08-02 21:43:08 9295

原创 简析Android对Linux内核的改动-(下)

2 、YAFFS2    不同于PC机(文件是存储在硬盘上的),手机使用FLASH作为存储介质。HTC的G1使用的是NAND FLASH——这种存储目前已经相当普及了,而且种类也颇多(如SLC、MLC等),存储密度也越来越高(已经出现几十GB大小的NANDFLASH),价格也

2011-07-31 16:24:48 5002 5

原创 简析Android对Linux内核的改动-(上)

现在Android已经很火了,我的一个哥们儿上个月找到一个Android应用开发的职位,月薪就有6K了,羡慕啊。这里分析下Android的内核结构,主要介绍Android和Linux之间的关系,以备以后可能的转型。大家都知道Android是基于Linux内核的操作系统,也曾经和L

2011-07-31 16:22:06 11934 17

原创 Boost学习系列4-事件处理(下)

合成器是一个重载了 operator()() 操作符的类。这个操作符会被自动调用,传入两个迭代器,指向某个特定信号的所有返回值。以上例子使用了标准 C++ 算法 std::min_element() 来确定并返回最小的值。    不幸的是,我们不可能把象 std::min_ele

2011-07-28 22:46:33 3459

原创 Boost学习系列4-事件处理(上)

一、概述    相信大家在听到术语“事件处理”时就会想到GUI:点击一下某个按钮,相关联的功能就会被执行。点击本身就是事件,而功能就是相对应的事件处理器。    当然这一模式的使用当然不仅限于GUI。一般情况下,任意对象都可以调用基于特定事件的专门函数。本章所介绍的Boost.S

2011-07-28 22:38:11 5461

原创 信号(Signal)与槽(Slot)-Qt中的典型机制

因为下一篇关于Boost的文章会涉及到事件处理的问题,里面用的是信号和槽的机制,先拿Qt里的这个机制预研一下。诶,Boost这是够厉害的,什么先进就包含什么!要知道我以前一直以为这是Qt的专利呢。当然,这也是大多数厉害的开源软件库的高人之处,像Qt这种GUI库也包含了很多数据库,

2011-07-25 22:09:50 19085 6

原创 Boost学习系列3-函数对象(下)

四、Boost.Lambda    匿名函数 - 又称为lambda函数 - 已经在多种编程语言中存在,但 C++ 除外。 不过在Boost.Lambda库的帮助下,现在在 C++ 应用中也可以使用它们了。   lambda 函数的目标是令源代码更为紧凑,从而也更容易理解。 以本

2011-07-25 21:10:51 3033

原创 Boost学习系列3-函数对象(上)

这次主要介绍的是函数对象,可能称为“高阶函数”更为适合。它实际上是指那些可以被传入到其它函数或是从其它函数返回的一类函数,在C++中高阶函数是被实现为函数对象的。本文将会介绍几个用于处理函数对象的Boost C++库。 其中,Boost.Bind可替换来自C++标准的著名的 st

2011-07-25 20:57:13 4656

原创 Linux内核同步方式剖析-(下)

自旋锁有两种可用的形式:完全锁(full lock)和读写锁。 首先看一下完全锁。    首先通过一个简单的声明创建一个新的自旋锁。这可以通过调用 spin_lock_init 进行初始化。清单 5 中显示的每个变量都会实现相同的结果。清单 5. 创建和初始化自旋锁

2011-07-24 20:09:35 3340

原创 Linux内核同步方式剖析-(上)

本文是从IBM Developerworks上转载的,的确是很不错的技术网站,有很多关于linux的文章。这篇讨论了 Linux 内核中可用的大量同步或锁定机制,这些机制为2.6.23版内核的许多可用方法提供了应用程序接口(API)。之前用的类似semTake/Give等函数都是

2011-07-24 20:02:16 1708

原创 万众期待,Linux 3.0内核发布!!(附下载地址)

上网无意间看到了令我相当兴奋的消息,3.0发布了!!在经历了短暂的延期后,3.0内核终于来了!Linux Kernel的上一个版本是2.6.39,也是2.6系列的第39次升级维护。从改进幅度上看,Linux Kernel 3.0其实完全可以叫做2.6.40,但这年头版本号为王,3

2011-07-24 17:22:55 4102 1

原创 Boost学习系列2-智能指针(下)

3.5、弱指针    前面的几种智能指针在不同场合可以独立使用,然而,弱指针只有在配合共享指针使用时才会有意义,见下面例子:#include #include #include #include DWORD WINAPI reset(LPVOID p)

2011-07-21 21:56:42 7464 1

原创 Boost学习系列2-智能指针(上)

一、概述最先讲的就是指针,这是C语言中,不少程序员害怕的东西,害怕的原因大多是因为不了解其初始化、调用、赋值和清除的方式,而智能指针则可以去除这个顾虑,在初始化时就已经预定了删除,排解了后顾之忧。1998年修订的第一版C++标准只提供了一种智能指针:std::auto_ptr,它

2011-07-21 21:27:37 4825 1

原创 Boost学习系列1-简介及基本用法

在做长字符串匹配、搜索的问题时,我想大家最先想到的应该就是使用正则表达式,简单、高效。而Boost的Regex库则是不得不提的,很早之前我就接触过了Boost的这个模块,也对Boost了解了一点点,只是觉得它很NB,没做深究。昨天在网上无意中看到了Highscore的Boost

2011-07-21 21:05:17 4117 2

原创 网络协议栈中你必须知道的专业词汇集合

最近移植在弄网络协议栈的移植,找了不少关于协议栈的资料,这个是一些专业词汇的总结,特此记录,以备查阅。1.几种数据交换方式、特点 线路交换:概念来源电话系统,硬件开关接通输入输出信号。延迟小,独享物理线路。需要建立线路,数据传送,释放线路三个步骤完成。 报文交换:不需建立连接线路

2011-07-21 20:11:39 2789

原创 算法的时间性能分析

算法的时间复杂度在PC机上开发可能关系不太大,但是到了嵌入式系统下,复杂度就变得很重要了,一个复杂度很高的程序会使得本来有限的资源变得更加拮据,本文系转载自longmans的网易博客,借此学习下复杂度的计算。 本文主要从四个方面分析算法的复杂度:一、算法耗费的时间和语句频度:

2011-07-21 20:10:13 4609

原创 CLNP-无连接网络协议的基本概念

最近被mmslite的移植弄得头大,由于之前接触的较少,把多线程的一块用POSIX的pthread搞定就看了好多的资料才完成,又发现BSD中没有获取MAC地址的接口(类似ioctl(..,SIOGIFHWADDR,..)的),弄着弄着,发现这个CLNP挺不错,像IP,这里先转个c

2011-07-19 21:03:24 4910

原创 基于BSD4.4的UDP通讯初探

前段时间在移植mmslite到vxWorks上,主要涉及到的修改为网络连接部分、多线程支持部分以及时间模块。这里主要阐述网络部分,其他的有时间会一一推出。由于之前是在windows上实现的,网络连接部分自然就是使用的socket和WSA了。然而和Unix系统一样,vxWorks使

2011-07-19 19:53:11 3224 4

原创 VC下遍历文件夹的两种方法

想找个能遍历文件夹的办法,找了下,大概有两种,列举如下第一种方法就是网上常见的一种方法:find(char * lpPath){  char szFind[MAX_PATH];  WIN32_FIND_DATA FindFileData;  strcpy(szFi

2011-07-18 22:25:09 18672 9

原创 一个让高级C++程序员都会出错的题目

之前我好像在一个论坛上看到了,过太久了,不太记得了,今天翻出来,觉得挺经典的,就贴出来了。如下:这是一个比较典型的问题,很多人都会遇到,这也是一个在C++输入时经常遇到的一个问题。C++代码如下:#include 3.int main() 4.{ 5.

2011-07-16 22:35:27 2561 6

原创 回车('\r')和换行('\n'),坑爹的Windows

前段时间移植一个windows下的程序到vxWorks下,由于原程序要读取配置文件,所以我将它们一起放在了nor flash里,好不容易搞定了编译错误,一运行程序就出错,进去调试,发现读到的信息全是错的!!不会吧,细细一看,fopen读上来的字符串是这样的"First Line\

2011-07-16 08:38:53 2505 3

原创 某重工企业笔试题目合集(附答案)

由于涉及到机密问题,就不指明是什么公司了,总之很大的了,看看吧,挺基础也挺实用的  1、 .h头文件中的 #ifndef/#define/#endif 的作用? 答:防止该头文件被重复引用。 2、 #define DOUBLE(x) x+xint i = 5*DOUBLE(5);

2011-07-10 21:09:37 2727 2

原创 vxWorks多任务编程初探-下

当一个任务要进入资源,首先要得到一个信号量(take that semaphore),只要有任务在使用这个信号量,其它的要进入资源的任务要停止执行(blocked from execution),当这个任务完成了对资源的使用,它会释放信号量,允许另一个任务来使用资源。   sem

2011-07-08 10:39:28 3000

原创 vxWorks多任务编程初探-上

进程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。而进程则不同,它是程序在某个数据集上的执行,是一个动态实体。它因创建而产生,因调度而运行

2011-07-08 10:35:51 8511

原创 Nand Flash驱动程序编写指南-3

下面开始分析nand flash时序图,并以读操作为例编写nand flash驱动,先看下我们应该发什么命令读数据,下面是数据手册的命令集合:由上可以看出,要读取数据,只需要发送一个命令周期,发00h或01h。知道了发什么命令,再来看如何发送命令,下面是读命令的时序图: 上面图的红线处,它所在的时刻就是在发送读操作的第一个周期的命令0x00之前的那一刻。看下

2011-06-30 16:35:00 3822 1

原创 Nand Flash驱动程序编写指南-2

接下来看一下Nand Flash的引脚(Pin)定义,数据手册截图如下:上图是常见的Nand Flash所拥有的引脚(Pin)所对应的功能,简单翻译如下:I/O0 ~ I/O7:用于输入地址/数据/命令,输出数据;CLE:Command Latch Enable,命令锁存使能,在输入命令之前,要先在模式寄存器中,设置CLE使能;ALE:Address Latch Enabl

2011-06-30 16:31:00 4144

原创 Nand Flash驱动程序编写指南-1

  本文根据我的项目经验并结合博客园Sankye的《Linux下nand flash驱动》一文编写的,有雷同之处请多海涵。在编写nand flash之前,我们需要先了解以下要处理的设备的硬件特性。Flash全名叫做Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Volatile Memory Device)。关于

2011-06-30 16:27:00 2873

原创 Flash文件系统简介

首先了解下nand的文件系统,就其结构可以分为两类:基于块设备的常规文件系统和日志结构文件系统。基于块设备的文件系统最典型的就是Flash不是块设备,要想运行传统FTL将vxWorks的系统中,基于DOS/FAT+FTL的结构实现的,DOSFS是YAFFS充分利用了16个字节的空间,其中ecc,1个字节为数据状态字,剩余8个字节YAFFS源码并考虑移植到(1代差不多mtdemul目录下有一个2k的

2011-06-29 15:28:00 3157 1

转载 S3c2440 Nand Flash结构分析与编程

看了好久的nandflash手册以及其他方面的一些资料,因为英语不好,所以手册看的有点晕,幸好网络资源的丰富。总结一下我所理解的nandflash操作,基于一些其他的原因,暂时不继续进行裸机编程,只是把所有的理解详细的写下来。1. 首先对于nandflash编程有三个方面     1. nandflash存储器,当然这是重点,因为对于nandflash编程就是对nandflash进行读写擦

2011-06-26 17:11:00 2716

转载 转帖:关于链表操作不得不看的经典问题

本文出自 “bluefish” 博客,请务必保留此出处http://bluefish.blog.51cto.com/214870/68462下面是几个关于链表的非常经典的问题与实现,是在《程序员面试攻略》中看到的,由于实在是太经典了,所以忍不住在这里贴下。    问题1:给定一个单项链表,设计一个时间优化并且时间优化的算法,找出该链表的倒数第m个元素。当m=0时,返回链表的

2011-06-18 21:21:00 1398

原创 源码分析vxWorks6.x的ARM板BSP启动过程(下)

五、执行kernelInit()该函数是由风河vxWorks库文件封装的,功能为提取kernel并运行,使得后期的初始化能够以kernel下运行的任务来完成。该任务名为tRootTask,它执行的方式类似于usrRoot。kernelInit先调用intLockLevelSet函数,屏蔽round-robin scheduling模式(不知怎么翻译),并创建中断堆栈。然后从内存池顶端产生roo

2011-06-06 10:32:00 4408

原创 源码分析vxWorks6.x的ARM板BSP启动过程(上)

BSP用于初始化硬件、引导操作系统并提供软件和硬件之间的设备驱动接口,针对某类体系结构的处理器开发BSP时,了解其基本的体系结构和指令系统是必要的。一般来说,BSP的设计与开发可分为几个步骤:1、  建立开发环境,这个不用说了,就是装集成环境;2、  选择合适的BSP模板,要尽可能的与硬件平台相近;3、  修改或添加wind内核激活前的初始化代码,例如初始化CPU内核、MMU、Cach

2011-06-06 10:28:00 4769

原创 vxWorks操作系统的映像及其装载过程

映像 vxWorks bootrom 启动顺序 引导 装载

2011-06-01 23:10:00 5677

原创 Ubuntu10.10下Qt与wxWidgets的编译安装

Ubuntu Qt wxWidgets 编译 经验 评测

2011-05-25 22:55:00 3796

原创 Ubuntu10.10下安装gcc-4.5.3

编译 gcc g++ gmp mpc mpfr

2011-05-25 22:49:00 4991

原创 Linux下源码安装的经验总结

X11 源码 编译 安装 configure ldconfig automake

2011-05-25 22:46:00 2148

原创 三道很经典的面试题目

经典 面试 题目 C语言

2011-05-24 21:07:00 2030

原创 C语言中一些比较基础而又重要的知识

C语言 基础 字符串 查找 截取 前几位 初始化 二维 数组 指针 内存分配 内存拷贝 比特 移位 类型转换 CString TCHAR char LPSTR 输出到文件

2011-04-04 16:33:00 1580

原创 C语言中的初始化及内存分配

初始化 二维 数组 指针 内存分配 内存拷贝

2011-04-04 16:23:00 6308

原创 用C语言实现MFC库函数GetPrivteProfileString

GetPrivteProfileString MFC 数据结构 文件读写 C

2011-04-04 16:17:00 3254 1

Linux PowerPC详解:核心篇

《Linux PowerPC详解:核心篇》分8章,第1章讲述Linux PowerPC的组成;第2~4章讲述了有关PowerPC处理器的基础知识,包括指令集、寄存器、内存体系结构等;第5~8章讲述Linux系统在PowerPC处理器中的运行,包括进程调度、中断处理、内存管理和初始化。它对PowerPC处理器的介绍非常详细,绝对是想要入门及深究Linux+PowerPC的你不可或缺的好资料!!

2011-11-03

PowerPC E300处理器核详细介绍

PowerPc E300内核是由原始MPC603e PowerPC微处理器派生设计出来的,该文主要介绍e300内核的详细信息,提供其主要功能单元的结构图,并介绍其各单元的交互。它是一个精简指令集RISC处理器,实现了PowerPC系统结构的32位部分,定义了32位有效地址,8、16和32位整型数据类以及32、64位浮点数据类。 E300核是一个超标量处理器,它每个时钟可发出和撤回3条指令,指令可不按程序顺序执行以提高性能。它集成了5个执行单元:整数单元IU、浮点数单元FPU、转移处理单元(BPU Branch Processing Unit)、取/存单元LSU和系统寄存器单元SRU。并行执行5条指令的能力和具有快速执行时间的简单指令的使用使得基于e300的系统有很高的效率和吞吐率。整型指令大多数在一个时钟周期内执行完成,FPU是流水处理,每个时钟周期可发出并完成一条单精度乘法-加法指令。E300核为所有单精度和双精度浮点运算中的绝大多数值的表现和所有的舍入模式提供硬件支持。

2011-08-14

设计模式迷你使用手册

关于对二十几个设计模式的不错的使用手册,以备需要时查阅

2011-03-13

Dijkstra算法解决最短线路问题

2007高教社杯全国大学生数学建模竞赛B题的解决方案,采用Dijkstra算法解决

2011-03-13

空空如也

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

TA关注的人

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