自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (9)
  • 收藏
  • 关注

原创 linux内核相关镜像zImage、zImage、bzImage、vmlinuz、vmlinux、Image关系分析(摘自《国嵌-嵌入式Linux内核驱动进阶班实验手册》)

linux内核相关镜像zImage、zImage、bzImage、vmlinuz、vmlinux、Image关系分析(摘自《国嵌-嵌入式Linux内核驱动进阶班实验手册》)

2011-03-24 21:24:00 4956 1

转载 linux中ELF加载过程分析

ELF格式的二进制映像在装入和启动的过程中需要得到一个工具软件的协助,其主要的目的在于为目标映像建立起跟共享库的动态连接。这个工具称为 “解释器”。一个ELF映像在装入时需要用什么解释器是在编译/连接是就决定好了的,这信息就保存在映像的“解释器”部中。“解释器”部的类型为 PT_INTERP,找到后就根据其位置p_offset和大小p_filesz把整个“解释器”部读入缓冲区。整个“解释器”部实际上只是一个字符串,即解释器的文件名,例如“/lib/ld-linux.so.2”。有了解释器的文件名以后,就通过

2011-03-24 21:15:00 2405

转载 dlsym与-fPIC,以及objcopy

这两天做的工作当中,遇到了这样一个需求。在Linux环境下,要为一个daemon程序的一个动态库进行升级,不不打断这个daemon的运行。这个动态库的函数会被daemon的多个线程调用。在升级时,对于已经使用了这个动态库的线程要毫无影响,直到这样的线程再次调用动态库的API时,再使用新的动态库。换句话说,在升级时,新旧两个动态库可以同时被这个daemon的线程调用。

2011-03-24 21:06:00 1756

原创 线程条件变量详解

posix线程条件变量详解,解释pthread_cond_wait为什么要配合pthread_mutex_lock/unlock使用。

2011-02-24 14:08:00 1508

原创 openssl 客户端程序移植到arm平台 OK6410上运行

openssl 客户端程序如何移植到arm平台上运行? 在我的项目中拥有一个服务器程序file_server和一个客户端程序file_client,它们实现了通过安全套接字层传输文件的功能。原本两个程序都在pc上运行,现在要把客户端程序移植到arm平台上。

2011-02-12 14:27:00 2999 1

原创 NFS无法挂载,出现错误:reason given by server: Permission denied的解决办法

NFS无法挂载,出现错误:reason given by server: Permission denied的解决办法

2011-01-25 18:57:00 6650

转载 Linux下静态链接库与动态链接库的区别

通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件 (object file)与牵涉到的函数库(library)被链接合成一个可执行文件 (executable file)。程序 在运行 时,与函数库再无瓜葛,因为所有需要的函数已拷贝到自己门下。所以这些函数库被成为静态库(static libaray),通常文件 名为“libxxx.a”的形式。其实,我们也可以把对一些库函数的链接载入推迟到程序运行的时期(runtime)。这就是如雷贯耳的动态链接库(dy

2011-01-14 11:52:00 19267 3

原创 NTP校时源码(一个教完整的NTP服务项目示例,摘自国嵌实验手册)

NTP校时源码(一个教完整的NTP服务项目示例,摘自国嵌实验手册),实现简单,综合性强,涵盖shell、linux系统管理、linux高级编程等知识点,是一个很好的编程练习项目代码。修正了一些网上流传的实现精确校时代码算法的错误。

2010-12-03 14:21:00 18608 8

原创 linux c 实现目录拷贝

#include #include #include #include #include #include #include #ifndef DEBUG #define PDEBUG(fmt, args...)/ do{}while(0)#else #define PDEBUG(fmt, args...)/ printf("[%s:%d]"fmt, __func__, __LINE__, ##args)#endif#ifndef

2010-11-22 11:48:00 4629 3

翻译 翻译了一篇关于网络安全的文章

 1.     IntroductionBriefly, the dump of network traffic represents a process of establishing a TCP connection between two machines via NetBIOS session service over SMB protocol. The report will firstly provide a general description of problems identified

2010-10-24 10:49:00 3781 2

原创 在2.6内核中,通过 netlink实现单播通讯(文件监控实例)

在2.6内核中, netlink相关的接口函数随着版本的变化很大,现在网上流传的多数代码是以较老的版本(2.6.24以下)作为依托。这里,我将一段基于2.6.18的简单的代码移植到了2.6.27中,希望可以帮助大家理解其中的变化。

2010-10-03 20:23:00 4699 2

转载 C++的多态性

                                                                                              C++多态技术 摘要本文描述了C++中的各种多态性。重点阐述了面向对象的动态多态和基于模板的静态多态,并初步探讨了两种技术的结合使用。 关键词多态  继承  虚函数  模板  宏  函数重载 泛型编程  泛型模式   导言多态(polymorphism)一词最初来源于希腊语polumorphos,含义是具有多种形式或形态的

2010-09-11 18:05:00 775

原创 C++中的异常处理模块--try, throw, catch总结

    try ,throw, catch是 C++异常处理的 利器,他们的引入使得你的程序结构更加清晰。    如果曾经用C 语言写程序,你一定体验过使用大量的if, else结构,甚至是多重的if, else嵌套处理 异常情况带来的麻烦。而且这样写出来的 代码也会很长很难看, 因为为了使程序严谨, 你不得不在每个可能出错的地方都加上if, else结构。    C++的try ,throw, catch, 将程序的异常处理系统化和结构化,我们只需要遵循这样的结构:try{ /*以下是 受异常监控

2010-09-07 02:06:00 2264

原创 用C语言写俄罗斯方块

用C语言写俄罗斯方块[微软用户1] 目录(需求):1.  屏幕作图与窗口实现;2.  方块的构造与产生;3.  方块的移动与翻转;4.  中断计时与方块自由下落;5.  判断方块碰撞与消行;6.  按键控制;7.  扩展新的功能;开发环境:1.       编译器tc2.02.       编辑器wintc1.83.       运行环境xp下dosbox1. 屏幕作图与窗口实现将整个屏幕划分成四部分:a、主游戏窗口;b、一个给预览下一个方块的4*4窗口;c、记录窗口SCORE和记录窗口LEVEL;d、提示

2010-08-15 21:27:00 12596 7

原创 TQ2440 上用多线程实现的mp3 播放器

    概述:        @  这是一个基于 tq2440开发板的, 使用用多线程实现的mp3播放器。        @  从软件层次来看, 驱动层包括  按键驱动 和 声卡驱动, 需要自己实现的是 按键驱动; 应用层有 MP3主播放程序 和 Madplay播放器。         @  除了madplay 播放器播放MP3, 为了好玩 ,还将蜂鸣器播放音乐的功能加了进去, 不过要用  下的一段 代码转换 编码数组 为程序可读的文件。@  由于 madplay 编译后 本身会只会生成 madplay这个

2010-08-01 02:34:00 4999 5

原创 虚拟机linux 网络配置,ping不通,不能上网请试试这个(图文)

    环境:虚拟机+fedora10,路由上网       1.终端中输入 vim /etc/sysconfig/network-scripts/ifcfg-eth0,打开配置文件,改为:  DEVICE=eth0 # 设备名 HWADDR=00:0c:29:ad:e1:bcONBOOT=yes # 是否随系统启动开启设备

2010-05-08 19:49:00 8246 4

原创 一个很好的vim配置(可鼠标操作vim有图)

 上面就是效果图了,所有在我的资源中可以下到,下面附上使用说明:  使用方法: 1.将vimrc包中的.vimrc放到/home或者/root 目录下(具体要看你是什么身份登陆的)。 2.将其他两个zip包中plugin和doc中的文件分别放到 vim/doc 和vim/plugin 中,这两个目录具体是什么要看你的系统和vim的版本,可以先用locate命令找

2010-04-27 00:22:00 6705 5

原创 修改 SELINUX导致无法进入图形界面的处理办法

      由于VMware中硬盘空间分配的太少,自己重新分配了一块硬盘挂载到/MyDisk目录下,并通过samba服务共享它。      这时出现问题了,权限等其他设置都没错(到这里配置:/etc/samba/smb.conf,通过这个启动 /etc/init.d/smb restart)通过guest登陆后也看得到共享目录,就是双击时提示“没有权限”无法访问。   

2010-04-22 16:30:00 3299 1

转载 Bash 中的递归函数

作为一种解释性语言,尽管 bash 对编程提供了一定的支持,但是在某些方面却存在一些限制。本文将逐一探讨在 bash 中编写递归函数时需要注意的返回值、参数传递和性能等方面的问题,并给出可能的解决方法,最后对如何优化 shell 脚本性能提供了一个建议。作为 Linux/Unix 系统上内核与用户之间的接口,shell 由于使用方便、可交互能力强、具有强大的编程能力等特性而受到广泛的应用。

2010-04-22 11:08:00 1146

原创 一个可以计算表达式的计算器

    一个可以计算表达式的计算器,还带了闹钟功能,当然做的实在太业余(目录功能还没加完),不会MFC,用win32的API函数凑出了的。    完全展开: 精简模式: 记录窗口: 消息窗口: 闹钟:   

2010-04-16 20:08:00 1216

原创 一段简单程序为什么在linux终端与win控制台下运行效果不同?(望高手指点)

    一段简单程序为什么在linux终端与win控制台下运行效果不同,是程序问题还是兼容性问题,希望有谁能指点一下:    程序是这样的(怎么加为高亮?):#include int ProgressBar(int p, char *barname);int main(int argc, char *argv[]){   

2010-04-16 17:15:00 1874 2

转载 (转)typedef用法小结

 这两天在看程序的时候,发现很多地方都用到typedef,在结构体定义,还有一些数组等地方都大量的用到.但是有些地方还不是很清楚,今天下午,就想好好研究一下.上网搜了一下,有不少资料.归纳一下:来源一:Using typedef to Curb Miscreant CodeTypedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能

2010-01-29 21:20:00 794

原创 我买的开发板——大虾网DX32(for STM32)

      最近准备学习ARM芯片~由于基础和能力都不够,看到强大的ARM9芯片就没底气了。听了一前辈的意见,打算玩玩STM32.      STM32是也是ARM芯片,是独立于ARM9和ARM7以外的一个体系——CORTEX-M3。要说ARM7是赛扬,ARM9是酷睿的话,这个CORTEX会不会就是奔腾呢?呵呵。实际上Cortex-A0系列的速度和性能比ARM9高不少. Cortex系列更确切

2009-12-16 01:10:00 4439 1

转载 我对usb--IN、OUT事务的软件角度理解(gliethttp)

文章来源:http://gliethttp.cublog.cn[转载请声明出处]当设置地址的setup包发送完之后usb host主机会继续产生一个IN事务,进而进入这里,将setup包中设置的地址值,配置到usb从设备上--pdiusbd12对于PDIUSBD12来说,当为OUT事务数据包时,

2009-12-03 23:45:00 2313

原创 Protues 7.6仿真430 + LCD 简易贪食蛇

      闲来无事,用protues+LM3224做的简易的贪食蛇游戏。使用protues7.6才出现的仿真模型MSP430F2131,效果见图。有需要protues7.6携带版的朋友可告诉我邮箱。需要贪食蛇及LM3224显示驱动源码,将同时附上。      本人初学者,水平有限,请高手指点。硬件连接图及开机界面:      注:软件仿真时没有考虑430的端口电压3.3v和lcd

2009-11-28 15:50:00 3472 24

linux c函数手册、c、c++函数手册、linux高级编程

linux c函数手册 c、c++函数手册 linux高级编程 3合1 linux高级编程必备 都是流传的经典,无需多解释,值得拥有

2010-12-03

linux命令查询手册、linux shell编程经典书籍、shell参数表整理、linux系统管理

linux命令查询手册 linux shell编程经典书籍 shell参数表整理 linux系统管理 4合1 linux 管理学习必备 都是流传的经典,无需介绍,值得珍藏

2010-12-03

JLink 使用指南 包括教你怎么烧写nandflash

JLink 使用指南 包括教你怎么烧写nandflash 不止一本手册、几乎涵盖了所有Jlink用法 绝对值得珍藏

2010-12-03

gcc、gdb、gnumake中文手册3合1

Linux应用程序设计基础 gcc gdb gnumake 中文手册 不用再去他处找了 一次下完

2010-12-03

linux 内核与驱动相关的权威书籍

linux 内核与驱动相关的权威书籍 1.Linux设备驱动程序第三版 2.LINUX内核设计与实现

2010-06-02

计算器 API C 上位机

上次只上传的可执行程序纯属 遗漏,这次补传 源码,还请谅解

2010-05-23

一个很好的vim配置(可鼠标操作,有目录,自动补全)

使用方法: 1.将vimrc包中的.vimrc放到/home或者/root 目录下(具体要看你是什么身份登陆的)。 2.将其他两个zip包中plugin和doc中的文件分别放到 vim/doc 和vim/plugin 中,这两 个目录具体是什么要看你的系统和vim的版本,可以先用locate命令找一下。我的是 /usr/share/vim/vim72/doc 和 /usr/share/vim/vim72/plug。 3.在.vimrc中设有几个快捷键: map :wqall //保存全部并退出 ,如果这些键有冲突,就进.vimrc来改吧 map :NERDTreeToggle //打开/关闭目录树边框(左) map :NERDTreeMirror //目录树镜像 map :wall //保存全部 map :TlistToggle //Tlist开启、关闭,边框(右) . . . map :! ctags -R . //当前目录递归创建ctag 4.配置完之后,原本强大的vim,使用起来会更加顺手。 插入按自动补全,检索方便,鼠标可操作,括号自动配对添加,代码折叠..更多惊喜要体验后才知道哦 要括号自动配对添加,.vimrc中需加这几句 (注意,从window贴过去可能会在每行后有^M就是\r ,需要去掉才行) set sm inoremap ( () inoremap { {} inoremap [ [] 觉得好用就来留言吧:http://blog.csdn.net/RICH_BABA/archive/2010/04/27/5532074.aspx

2010-04-27

计算器 API C 上位机 表达式计算器

一个可以计算表达式的计算器源码,没有mfc,c语言调用win32 api实现

2010-04-16

Protues 7.6仿真的430 + LCD 简易贪食蛇c源码

自己写的程序,已在protues上验证。 要protues的朋友请上blog留言 http://hi.csdn.net/RICH_BABA

2009-11-28

空空如也

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

TA关注的人

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