自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 问答 (1)
  • 收藏
  • 关注

转载 面向对象的3个基本要素和5个基本设计原则(整理)

面向对象的3个基本要素:封装、继承、多态面向对象的5个基本设计原则:单一职责原则(Single-Resposibility Principle)    其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将

2014-01-07 11:23:35 750

转载 NUnit使用详解(一)

NUnit使用详解(一)(原创:http://hi.baidu.com/grayworm)NUnit是一个单元测试框架,专门针对于.NET来写的,它是是xUnit的一员。NUnit完全由C#语言来编写,并且编写时充分利用了许多.NET的特性,比如反射,客户属性等等.最重要的一点是它适合于所有.NET语言.单元测试:作为程序员在开发过程中,不可避免地要对软件的类及其方法进行测试。

2013-12-24 10:47:52 5650

转载 windows进程间通信

摘 要: 随着人们对应用程序的要求越来越高,单进程应用在许多场合已不能满足人们的要求。编写多进程/多线程程序成为现代程序设计的一个重要特点,在多进程程序设计中,进程间的通信是不可避免的。Microsoft Win32 API提供了多种进程间通信的方法,全面地阐述了这些方法的特点,并加以比较和分析,希望能给读者选择通信方法提供参考。关键词 进程 进程通信 IPC Win32 API

2013-06-21 15:50:47 506

转载 浅谈HTTP中Get与Post的区别

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。  1.根

2013-05-09 13:14:02 452

转载 HttpWebRequest GET POST 应用

程序使用 HTTP 协议和服务器交互主要是进行数据的提交,通常数据的提交是通过 GET 和 POST 两种方式来完成,下面对这两种方式进行一下说明: 1. GET 方式。 GET 方式通过在网络地址附加参数来完成数据的提交,比如在地址 http://www.google.com/webhp?hl=zh-CN 中,前面部分 http://www.google.com/webhp 表示数据提交

2013-05-09 13:13:05 589

转载 HEX文件和BIN文件格式的区别

HEX文件和BIN文件是我们经常碰到的2种文件格式。下面简单介绍一下这2种文件格式的区别:1 - HEX文件是包括地址信息的,而BIN文件格式只包括了数据本身         在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部的信息已经包括了地址。而烧写BIN文件的时候,用户是一定需要指定地址信息的。         3 - BIN文件格式

2012-11-20 11:27:45 697

转载 HEX文件格式

HEX文件以行为单位,每行以字符‘:’(0x3a)开头,以回车换行符0x0d, 0x0a为结束。每行开始和结束之间的所有内容,都是以字符形式表现的。例如数据0x1A,转换到HEX格式的行里面就是0x31 0x41。如果数据是16bit的,例如地址,则先显示高位,后显示底位。例如 0x1234,转换成HEX格式文件后变成 0x31 0x32 0x33 0x34,显示出来以后就是1234。将数据部分内

2012-11-20 11:21:17 858

转载 SD卡初始化及读写流程

SD卡调试关键点:1.      上电时要延时足够长的时间给SD卡一个准备过程,在我的程序里是5秒,根据不同的卡设置不同的延时时间。SD卡初始化第一步在发送CMD命令之前,在片选有效的情况下首先要发送至少74个时钟,否则将有可能出现SD卡不能初始化的问题。 2.      SD卡发送复位命令CMD0后,要发送版本查询命令CMD8,返回状态一般分两种,若返回0x01表

2012-11-01 09:36:31 1129

转载 在main()之前,IAR都做了啥?

最近要在Cortex-M3上写一个简单的操作系统,打算使用IAR,为了写好启动代码,花了一些时间了解了IAR在main()以前做了些什么事。首先系统复位时,Cortex-M3从代码区偏移0x0000'0000处获取栈顶地址,用来初始化MSP寄存器的值。接下来从代码区偏移0x0000'0004获取第一个指令的跳转地址。这些地址,是CM3要求放置中断向量表的地方。这里是一个程序的启动区的反

2012-09-21 14:55:43 1715 1

转载 用 IAR C/C++ For ARM 编写嵌入式应用的启动细节

一个朋友前几天对我说,想使用 ARM11 内核的 MCU 做一样东西,能不能帮他找个支持的开发工具,我记得 IAR 的支持 ARM11 ,就让他试试看,结果这位老兄试了一下严重不适应,问了很多细节,结果我也不太明白,所以特地下载了一个 IAR EW For ARM 的学习版研究一下,有 32K 代码限制,不过这不影响我们的学习。安装好软件后,先创建一个只有 main 函数的工程,随便选了一

2012-09-21 14:48:58 6562 1

转载 SD卡FAT16文件系统的学习笔记

一、     读文件的流程1.      读物理扇区0,得到引导扇(逻辑扇区0)的偏移地址。2.      读引导扇的内容,得到文件系统基本配置信息。3.      根据文件系统的基本配置信息计算FAT,FDT,数据簇的起始地址和大小。4.      根据要读的文件名搜索FDT表,找到要读文件的起始数据簇编号,大小。5.      根据文件的起始数据簇编

2012-09-20 16:25:07 1811

转载 FAT文件系统的组织结构(zt)(午夜听风)

FAT文件系统的组织结构  1. 软盘数据的逻辑存储软盘无须低级格式化和分区操作,只需用FORMAT命令做高级格式化即可。经过格式化操作之后,系统将在软磁盘上建立以下的数据结构:(1) 引导记录(DBR):位于0面0道1扇区,说明磁盘结构信息。(2) 文件分配表(FAT):用于记录磁盘空间的分配情况,指示硬盘数据信息存放的柱面及扇区的信息指针。其表项可以是以下四种表

2012-09-20 16:11:00 1669

转载 SD卡和FAT文件系统示例

1.   初始化SD卡:我现在用的多是SPI模式,所以在这里只讨论SPI模式。在SPI模式中,所有的指令都要求先将CS脚置0。所以这点,我在后面就不再强调了。 CMD0,使SD卡从SD模式转到SPI模式。判断返回值R0,如果不是CARD IS NOT READY,说明硬件上有问题。 CMD8,参数是0x000001AA,判断SD卡符合哪个标准。如果返回ILLEGALCOMMAND,说明

2012-09-20 16:10:17 2248 3

原创 锂电池充电电路原理及应用

锂离子电池以其优良的特性,被广泛应用于:手机、摄录像机、笔记本电脑、无绳电话、电动工具、遥控或电动玩具、照相机等便携式电子设备中。  一、锂电池与镍镉、镍氢可充电池:  锂离子电池的负极为石墨晶体,正极通常为二氧化锂。充电时锂离子由正极向负极运动而嵌入石墨层中。放电时,锂离子从石墨晶体内负极表面脱离移向正极。所以,在该电池充放电过程中锂总是以锂离子形态出现,而不是以金属锂的形态出现。因

2012-09-06 09:03:45 5578

转载 嵌入式编程 经验

个人认为在嵌入式编程领域掌握三门语言应该就无敌了,汇编,C,C++,精力有限掌握前两个也凑合,再不行C一定要精通,否则只有当老大了,呵呵,进入这个行业一年多时间了,有些感受,学到了很多,也走了不少弯路,在这里想跟大家分享一下,主要是帮助初学者。嵌入式编程最难的两部分就是interrupt和MM(memory manage),有些人可能感觉不到,那是因为太多数情况下芯片制造商都帮你写好了,但是如

2012-09-06 08:40:35 593

转载 关于51单片机IO引脚的驱动能力与上拉电阻

单片机的引脚,可以用程序来控制,输出高、低电平,这些可算是单片机的输出电压。但是,程序控制不了单片机的输出电流。 单片机的输出电流,很大程度上是取决于引脚上的外接器件。单片机输出低电平时,将允许外部器件,向单片机引脚内灌入电流,这个电流,称为“灌电流”,外部电路称为“灌电流负载”;单片机输出高电平时,则允许外部器件,从单片机的引脚,拉出电流,这个电流,称为“拉电流”,外部电路称为“拉电

2012-09-04 13:13:15 1809

转载 指针,数组与const

带有const的一级指针四种合法定义如下:const char *, char const *, char *const, const char *constconst char *p;char const *p;这两个定义是完全一样的,而规范的写法是 const char *p,都是指向静态字符的指针。P是可以改变的,但是*p不能改变的。即:pointer t

2012-07-30 14:51:16 1328

转载 一个进程在内存中的布局

对于一个完整的程序,在内存中分布情况如下图:         值得一提的是:在C#中struct存放在栈区,class存放在堆区,所以一般struct要比class要快的。 堆和栈的比较表(仅针对C++) 栈(Stack)堆(Heap)申请方式由OS自动分配。例如在函数声明一个局部变量int b

2012-07-16 09:39:42 344

转载 字节对齐

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

2012-07-11 15:01:37 346

转载 对单元测试的思考

1)对架构的反思:架构是否按照分层开发,业务逻辑是否全部在逻辑层实现而非UI实现,这些对单元测试都很重要。虽然现在提供了一些从UI开始的单元测试工具,但推荐方式或说单元测试的重点仍然在逻辑层。  2)对自我开发技能的反思:开发不做单元测试而直接做黑盒测试不利于锻炼自己逻辑思维能力,代码静态分析技能。通过进行单元测试,进行分支和覆盖分析,可以加强代码的可测试性,促进代码的重构。  3)单元测

2012-06-19 15:58:23 553

转载 ucGUI加载“完整”外部字库的方法——从外扩NOR Flash中加载

CPU:LPC2478NOR Flash:MX29LV640EBtypedef __packed struct {    U8  XSize;    U8  XDist;    U8  BytesPerLine;    const unsigned char GUI_UNI_PTR * pData;} GUI_CHARINFO;在我的平台下,外部NOR Flas

2012-06-05 16:27:59 3408 1

空空如也

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

TA关注的人

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