自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (1)
  • 收藏
  • 关注

原创 c语言与设计模式(2)——简单工厂模式

为什么要使用工厂模式?当看到“new”,就想到“具体”。因为“new”的右值总是一个实例。有了具体实例就违法了针对接口编程的原则了。在技术上,new没有错,错在“产品经理”们,错在改变。针对接口编程,可以隔离掉以后系统可能发生的一大堆改变。为什么呢?如果代码针对接口而写,那么通过多态,它可以与任何新类实现该接口。当代码使用大量的具体类是,等于是自找麻烦,因为一旦加入新的具体类,就必须改变代...

2019-12-27 23:26:42 239

原创 c语言与设计模式(1)——单例模式

万事开头难,所以我先捡一个简单的来写,希望后面越写越简单(aws: 长得丑,想得美)。单例模式可以说是最简单的设计模式了,单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。代码如下,/*************************...

2019-12-15 21:30:53 266

原创 c语言与设计模式(0)——基础

写在前面据上次写博客,已经好久好久了,期间一段时间,努力奋进,发粪涂墙,终于从技术菜鸟已然变成了技术老菜鸟。此次回归博客主要是想熟悉下人类的语言,因为每天面对着电脑,与人交流的能力在弱化,再加上单身没人要,回家就是刷手机,感觉整个人都废了。正值想(瞎)重(优)构(化) 公司代码之时,看了一些关于设计模式的文章,故此作为观后感记下来加深记忆,加强表达力,万一有人看,运气好没准有人还会评论批判下,...

2019-12-01 22:31:30 287

转载 socket编程备忘录

#include int socket(int domain, int type, int protocol);socket的三个形参搭配整理如下:------------------------------------------------------------------TCP、UDP socket: 最常用的socket,不解释tcp_socket = socket(AF_INET, S

2015-09-15 08:41:20 404

转载 华为3G模块EM770W在LINUX下的驱动安装

嵌入式平台下3G网络服务器(3G+PPP+BOA+ARM).rar   嵌入式linux 平台下网络服务器(3G+PPP+BOA+ARM)[email protected]一、华为3G模块EM770W在LINUX 下的驱动1. EM770W为华为3G WCDMA模块,支持HSPA(HSPA data rate - 7.2 Mbps DL / 2 Mbps UL),更适合于无线视频服务器和监控器。E

2015-09-15 08:41:14 911

转载 Linux 时钟处理机制

Linux 时钟处理机制在 Linux 操作系统中,很多活动都和时间有关,例如:进程调度和网络处理等等。所以说,了解 Linux 操作系统中的时钟处理机制有助于更好地了解 Linux 操作系统的运作方式。本文分析了 Linux 2.6.25 内核的时钟处理机制,首先介绍了在计算机系统中的一些硬件计时器,然后重点介绍了 Linux 操作系统中的硬件时钟和软件时钟的处理过程以及软件时钟

2015-09-15 08:40:34 349

转载 在VMware环境下,使用KGDB调试内核及内核模块---基于kernel 2.6.36

参考博文:http://blog.csdn.net/jie12310/article/details/4564853一、系统安装与配置系统环境: 虚拟环境:   VMWare Workstation 7.1.4(英文版) 操作系统:   CentOS-6.0-i386(原内核2.6.32,将会把内核升级至2.6.36) 注:CentOS 是RedHat的一个社区版本.      (由于

2015-09-15 08:40:27 530

转载 Linux下的lds链接脚本基础

http://blog.chinaunix.net/space.php?uid=361890&do=blog&id=16284140. Contents1. 概论2. 基本概念3. 脚本格式4. 简单例子5. 简单脚本命令6. 对符号的赋值7. SECTIONS命令8. MEMORY命令9. PHDRS命令10. VERSION命令11. 脚本内的表

2015-09-15 08:40:20 360

转载 devtmpfs文件系统创建设备节点

一、devtmpfs概述 1.devtmpfs 的功用是在 Linux 核心 启动早期建立一个初步的 /dev,令一般启动程序不用等待 udev,缩短 GNU/Linux 的开机时间。 2.重要解释 Devtmpfs lets the kernel create a tmpfs very ear

2015-09-15 08:40:17 947

原创 函数的传出参数

对于函数的传出参数,如果这个参数是通过函数体内部的变量赋值得来,它必须比函数体内的那个变量多一级指针,并且这个变量不能位于stack区。eg:(错误之处欢迎指正) 点击(此处)折叠或打开 #includestdio.h> #include

2015-09-15 08:40:11 496

原创 linux内核中等待队列 (函数wait_event与wake_up)

根据内核3.1.6版本源码、书籍和网上资料,对几个函数进行分析       介绍这几个函数,不得不先介绍等待队列wait_queue_head_t与完成量completion。       等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核自动唤醒。       完成量机制是基于等待队列的,内核利用该机制等待某一操作的结束。这两种经常被

2015-09-15 08:40:07 510

转载 vboxmanage.exe error failed to lock media when compacting

在windows下执行vboxmanage.exe 命令给virtual box扩容时,出现此错误,原因是没有关闭virtual box 管理员在2009年8月13日编辑了该文章文章。 --> --> window._bd_share_config={

2015-09-15 08:40:03 2079

转载 VirtualBox虚拟vdi磁盘扩容

前提:平台: windows xp + VirtualBox + Ubuntu 11.04 问题:准备尝试给 Ubuntu 11.04 升级内核到 Linux 3.4.10, 下载内核源代码后, 拷贝了当前 Ubuntu 11.04 内核的配置 config-2.6.38-8-generic 配置文件. 还有很多新增属性, 直接敲回车跳过(貌似敲回车就是选择了Y).make 后

2015-09-15 08:39:58 416

转载 短信模块开发 tpdu格式(一)

1.1. 基本知识 短信模块开发指通过串口 at 命令驱动短信猫进行短信发送和接收操作。 短信猫操作分为三种模式: block,pdu 和 Text 短信传送有三种编码方式: 7 位, 8 位, UniCode 1.1.1.     相关文档 Gsm03.38 规范: Alphabets and language-specific information 着重介绍短信发送中对字

2015-09-15 08:39:54 574

转载 GSM短消息的pdu和text模式的区别是什么?

一共有三种方式来发送和接收SMS信息:Block Mode, Text Mode和PDU Mode。Block Mode已是昔日黄花,目前很少用了。Text Mode是纯文本方式,可使用不同的字符集,从技术上说也可用于发送中文短消息,但国内手机基本上不支持,主要用于欧美地区。PDU Mode被所有手机支持,可以使用任何字符集,这也是手机默认的编码方式。Text Mode比较简单,而且不适合做自定义

2015-09-15 08:39:52 620

原创 isdigit()函数——判断某一字符是否为数字

isdigit 原型:extern int isdigit(

2015-09-15 08:39:48 5388

原创 计算字符串数组有多少个字符串

举例如下:高亮部分为计算方法。注意点:字符串数组,即指针数组,所以不能直接像sizeof(数组名)那样得到,variant_keys中每一成员都是一个指针,所以,sizeof(variant_keys[0])的值为4。即variant_keys[0]代表的是一个指针(指向只读变量)。所有,有多少个指针就有多少个字符串。因为variant_keys是 指针数组 ,不是指针,所以sizeof(va

2015-09-15 08:39:44 1649

原创 works[0]——对 i.mx6 的认识

淘宝上截了几个图:可以知道处理器的框架和各个系列之间的区别 管理员在2009年8月13日编辑了该文章文章。 --> --> window._bd_share_config={"common":{"bdSnsKey":{},"bdText":

2015-09-15 08:39:42 413

原创 linux-2.6.37.4的移植(1)——移植前准备及设置分区

参考博客:http://blog.csdn.net/laoniu_c/article/details/17919695    虽然2.6内核里已经有了2440的代码,但是还是想从2410移植,这样遇到的问题肯能还多一点,技术不熟,希望能够成功。首先,美其名曰“站在巨人的肩膀上”,find -iname s3c2410、 find -iname smdk2410。(-iname查找时不区分大

2015-09-15 08:39:39 400

原创 u-boot2010.06的移植(6)——支持yaffs下载

先占个座,未完待续。。。。。。 管理员在2009年8月13日编辑了该文章文章。 --> --> window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdM

2015-09-15 08:39:37 323

原创 ldd学习准备

转载自http://blog.csdn.net/yanghanxing110/article/details/21884111 很多人和我一样应该都是从应用开发,想着手开始驱动的学习,我现在也是在做嵌入式这方面的开发,但对于驱动的掌握也不太好,我现在手上有本《LINUX设备驱动程序》第三版的书,我通过这本书及网上资源的学习,尽量每天都把学习的内容及编写的代码贴出来,下面就开始了。

2015-09-15 08:39:33 311

原创 关于数组名和字符串

通过一个例子的结果来分析: 点击(此处)折叠或打开 #includestdio.h> int main(void) {     char a[2] = {1,2};

2015-09-15 08:39:30 711

原创 字节对齐的位运算

很多程序需要对n字节对齐,把a按n字节对齐的位运算为:(a + n - 1) & (~(n - 1)),即如果 qn 管理员在2009年8月13日编辑了该文章文章。 --> --> window._bd_share_config={"common":

2015-09-15 08:39:26 707

原创 【转】C语言字节对齐

文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。   一、概念       对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。     二、为什么要字节对齐   需要字节对齐的根本原因在于CPU访

2015-09-15 08:39:23 262

原创 标准I/O库函数

FILE *fopen(const char *path, const char *mode); path:相对路径,绝对路径均可,相对路径是相对于当前路径说的。 mode: "r" 只读,文件必须已存在 "w" 只写,如果文件不存在则创建,如果文件已存在则把文件长度截断(Truncate)为0字节再重新写,也就是替换掉原来的文件内容 "a" 只能在文件末尾追加数据,如

2015-09-15 08:39:20 295

转载 vi配置

在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号、语法高亮度显示、智能缩进 等功能的。为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc。在启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本, 所以,一般情况下把.vimrc文件创建在当前用户的根目录下比较方便,即创建的命令为:$vi ~

2015-09-15 08:39:15 527

转载 关于strtok的参数问题

写了一段小程序,发现又一个知识点没有掌握好。 点击(此处)折叠或打开 #includestdio.h> #includestring.h> int main(void) {

2015-09-15 08:39:11 555

原创 u-boot2010.06的移植(5)——支持nandflash、分区及环境参数的设置

nandflash应该算是研究了很长时间了,但是还是有的地方没搞懂,有知道的大侠还望不吝键盘。我用的是K9F2G08U0A,貌似第三节已经介绍过了。在此不费口舌。直接切入重点难点。在此移植过程中,犯了一个低级的错误,导致我花了半年的时间捣鼓nand(有点夸张哈),马虎害死人啊。s3c2440和s3c2410的nand寄存器不一样,需要拿两者的芯片对照修改。寄存器不一样导致了底层寄存器操

2015-09-15 08:39:08 470

转载 expected declaration or statement at end of input

经谷歌,可能出现此原因有以下几点:、1、大括号,小括号不匹配。2、文件末尾有空行。3、自己定义的函数名和库文件中的函数名冲突。 管理员在2009年8月13日编辑了该文章文章。 --> --> window._bd_share_config=

2015-09-15 08:39:03 2871

转载 嵌入式Linux常用工具下载官网

arm linux gcc 交叉编译  http://www.arm.linux.org.uk/;;; ftp://ftp.arm.linux.org.uk/pub/armlinux/toolchain/;  ;;http://www.gnuarm.com/files.html#binaries   linux gcc 编译器  http://gcc.gnu.o

2015-09-15 08:39:01 508

原创 宏定义的顺序

一直以为宏定义是有顺序的,今天发现,原来没有,测试了下,代码如下:      1 #include      2       3 int main()      4 {      5     #define M N+1      6     #define N 1      7       8     int i = M;      9     printf("

2015-09-15 08:38:56 2953

原创 source insight 里的函数有时候会突然变黑

source insight 里的函数有时候会突然变黑,同步了下,没有效果。后发现这个工程的所有文件都没有加进去。至于加进去的文件为何被删除了,没有深入了解。    找到原因了方法自然就有了:project -> add and remove project files 重新把整个工程的代码添加下,然后同步。ok。 管理员在2009年8月13

2015-09-15 08:38:54 3680

原创 u-boot2010.06的移植(4)——支持norflash

norflash 的支持非常简单,仅需要了解几个宏的意思即可容易的写出来,并且这几个宏旁边都有注释,在此就不介绍了。高版本的u-boot可能还需要了解一下结构体,等移植高版本的u-boot的时候再详细介绍。如果说难点的话,CONFIG_ENV_ADDR 可以讲讲,可以看到源码 #define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + 0x0F0000) /

2015-09-15 08:38:51 359

原创 u-boot2010.06的移植(3)——支持nand启动

为什么要支持nand启动?这是面试的时候问的一个问题,结果我说是就是多一种支持,事后想想回答的太笨了啊,最起码也得回答个nand便宜啊,至于从sd卡驱动,以后再说。。 nand启动原理很简单,就是用nand的读方法从当前地址拷贝到链接地址,其中的难点是写地址。 以K9F2G08 (256M*8bit) 为例,其地址周期如下图:

2015-09-15 08:38:47 295

转载 UBOOT-2012-10在OK6410平台的移植(三)uboot 2012.10编译配置

1.安装交叉编译器 这里选择一个比较新的版本:ARM-Linux-gcc 4.5.1 在/usr/local目录下新建一个目录arm,把4.5.1版本拷贝到这里。 然后设置环境变量:在/root/.bashrc文件最后一行添加如下内容: export PATH=$PATH:/usr/local/arm/4.5.1/bin 保存后注销系统,重新登录后可以用export命令查看是否生效:

2015-09-15 08:38:43 320

原创 u-boot2010.06的移植(2)—— 时钟、SDRAM、UART

一、设置时钟:本板子是外接的12MHz晶振。通PLL(设置MPLLCON寄存器的)倍频到200MHz,并设置时钟分频比(CLKDIVN寄存器)为FCLK:HCLK:PCLK = 1:2:4 。s3c2440手册clock中有这么一个note:If HDIVN is not 0, the CPU bus mode has to be changed from the fast bus mod

2015-09-15 08:38:41 364

转载 ORR R0,R0,#R1_nF:OR:R1_iA

ORR R0,R0,#R1_nF:OR:R1_iA 终于看懂这是啥玩样了! 我是先看到这东西才开始疑惑的:这是S3C2440手册关于时钟介绍时的一部分,很明显它扯到了协处理器P15的C1寄存器,让我们来看看这是啥:原来iA位和nF位是控制CPU总线模式的:orr r0,r0,#R1_nF:OR:R1_iA这命令的意思肯定是让CPU的总线模式从“fas

2015-09-15 08:38:37 1011

原创 关于静态变量和变量初始化问题

下面四个子函数的代码,起区别就是定义的变量的属性(是不是静态的)以及有没有初始化:通过下面对代码的简单调试,可以简单的得出:       static int cnt = 0;他仅仅起的是一个初始化的作用,即我认为,在若干次执行test1()函数时,static int cnt = 0; 只在第一次test1()函数被调用的时候初始化为0,当test1()第二次或更多次被调用时,cnt为保

2015-09-15 08:38:33 778

转载 set_irq_reg()函数

在中断处理函数中,首先要保存被中任务的现场,最后要恢复现场。都要用到下面的函数:static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs){    struct pt_regs *old_regs;    old_regs = __this_cpu_read(__irq_regs);    /

2015-09-15 08:38:29 658

原创 read 函数返回值

在编写file_operation的read函数时,编写完成后,cat不出来,原因是因为read的返回值为0;read的返回值应不小于读出的字节数。write懒得研究了。。。 管理员在2009年8月13日编辑了该文章文章。 --> --> window

2015-09-15 08:38:25 633

ldd中文第三版

由 quickwhale 翻译的简体中文版 V0.1.0 2006-6-2 遵循原版的版权声明. 还在完善中. 欢迎任何意见, 请发信至 quickwhale 的邮箱 <[email protected]> 开始前言那几页有点问题,无关大雅

2013-01-10

空空如也

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

TA关注的人

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