自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (42)
  • 收藏
  • 关注

转载 free之后要记得指针置空

别看 free 和delete 的名字恶狠狠的(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身干掉。用调试器跟踪示例程序,发现指针p 被free 以后其地址仍然不变(非NULL),只是该地址对应的内存是垃圾,p 成了“野指针”。如果此时不把p 设置为NULL,会让人误以为p 是个合法的指针。如果程序比较长,我们有时记不住p 所指的内存是否已经被释放,...

2019-03-04 19:55:49 2166

转载 C语言中变量的作用域和生命周期

谭浩强书:从存储模型可以看到,谭浩强和钱能的模型有一定的对应关系:      静态存储区  ->  全局数据区      动态存储区  ->  栈(stack)变量的类型: 1. 局部变量和全局变量    局部变量也称为内部变量。 局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。       全局变

2016-04-06 17:55:12 11209 2

转载 free(p)后指针问题

笔试很喜欢考这些 #include #include #include int main(){  char *str = (char *)malloc(100);  strcpy(str, "hello");  free(str);  if(str != NULL)    {      strcpy(str, "world");      p

2016-04-06 17:38:24 686 1

转载 全局变量和局部变量在内存里的区别

一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)—,

2016-04-06 17:35:43 637

转载 CentOS(RedHat)中sendmail和sm-client启动慢的解决方法

我在装了red hat enterprise linux5.5后,将linux的主机名修改了之后,再rebootho

2014-08-19 17:23:19 793

转载 从spin_lock()到spin_lock_irqsave()

Spinlock的目的是用来同步SMP中会被多个CPU同时存取的变量。在Linux中,普通的spinlock由于不带额外的语义,是用起来反而要非常小心。在Linux kernel中执行的代码大体分normal和interrupt context两种。tasklet/softirq可以归为normal因为他们可以进入等待;nested interrupt是interruptcontext

2014-08-14 15:22:23 1459

转载 关于typedef的用法总结

来自关于typedef的用法总结

2014-07-31 16:57:37 444

转载 mkimage工具讲解

uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置, 入口点在内存的那个位置以及映象名是什么./mkima

2014-07-22 10:14:16 539

转载 ARM Linux 3.x的设备树(Device Tree)

1.    ARM Device Tree起源Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach

2014-07-21 17:02:39 419

转载 Image uImage zImage U-Boot的区别

转于:http://kmoving.blog.163.com/blog/static/20504919720123151533819/(1)、内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。那么uImage又是什么的?它是uboot专

2014-07-21 17:00:42 418

转载 U-boot在S3C2440上的移植详解

U-boot在S3C2440上的移植详解http://www.embeddedlinux.org.cn/html/jishuzixun/201303/16-2499.html一、移植环境·                                主  机:VMWare--Fedora 9·                                开发板:Mini2440

2014-07-21 14:41:32 1366

转载 今天刚知道原来参考文献可以自动生成

毕业论文不同于一般的小论文,特别是硕士毕业论文或者博士毕业论文。一般的小论文就四五页,而硕士论文动辄五六十页,有的甚至七八十页。所以有些东西如果要人工的去修改,将是一件非常痛苦的事情。痛苦的事情至少有两个:目录自动生成和编号、参考文献引用的上标。本文将从这两个方面说说小技巧,自动生成,非常方便。 先说两种痛苦情况。 设定好文章的目录结构后,突然发现中间要添加或者删除

2014-01-18 16:36:06 2428

转载 五险一金(普及贴)

养老保险:       一般要交满15年,到退休的时候才能终生享受养老金,所以想拿养老金的人请务必在自己退休前15年就开始交。如果到退休年龄交养老保险不满15年,那等到你退休的时候国家会把你个人帐户上存的8%的养老金全部退给你。那单位给你交的21%到哪里去了?国家把单位为你交的21%的钱全部划到国家的养老统筹基金里了。国家规定,退钱的时候只退给个人自己扣交的钱,单位为他交的钱全部都为国家做贡献

2014-01-04 16:02:04 661

转载 毕业论文抄袭率过高不着急,修改过关技巧曝光

目前,高校对于硕博士论文,需要通过抄袭检测系统的检测才能算过关。对本科生来说,大部分学校也采取抽查的方式对本科论文进行检测。 抄袭过多,一经查出超过20%,后果严重。轻者延期毕业,重者取消学位。尼玛辛辛苦苦读个大学,学位报销了多不爽。PS:科研机构的检测标准不同,百分之20,百分之三十,百分之四十的都有。但是,软件毕竟是人工设置的一种机制,里面内嵌了检测算法,我们只要摸

2013-12-27 14:49:34 2301 1

转载 BSS段、数据段、代码段、堆与栈

BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。代码段:代码段(code segment/text segment)通常是指用

2013-12-18 08:50:42 514

转载 我妈要是知道这些,我早上北大了。

家有5,6,7岁的孩子赶紧保存,对上学很有帮助。注意力训练,有用。1.1. 第一关听课不走神题训练目的:训练学生学习能力,能使学生上课专心听讲,认真写作业,考试不粗心,提高学习成绩训练要求:每天训练10分钟,放学后在家里写作业前训练,由家长监督训练情况,必须每天坚持训练,效果明显。1.1.1. 数字传真训练方法:家长将下列每个数字读一遍,孩子在听完之后凭记忆

2013-12-05 11:12:37 729

原创 关于用JLINK下载程序到博创UP-TECH2410板子上自动重启的问题__zhusjian

问题是这样的大概一个月前,我在IAR6.1上建了一个S3C2410的工程,我这边有两种板子,一块优龙FS2410板子,两块博创UP-TECH2410的板子,对应的也有两种调试器,优龙的使用的是DragonJtag,一端跟电脑的并口相连接,一端连接板子的JTAG接口,优龙的板子是标准的20针JTAG接口,编译环境是ADS1.2,调试的时候还有AXD,你懂的,蛮老了,现在ADS好像是被KEIL收购

2013-09-12 14:43:12 1577

转载 联合体union

当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。在C Programming Language 一书中对于联合体是这么描述的:     1)联合体是一个结构;     2)它的所有成员相对于基地址的偏移量都为0;     3)此结构空间要大到足够容纳最"宽"的成员;     4)其对齐方式要适合其中所有的成员;下面解释这四条描

2013-08-31 16:10:04 453

转载 详解大端模式和小端模式

详解大端模式和小端模式一、大端模式和小端模式的起源        关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,命令

2013-08-31 16:01:41 521

转载 strlen和sizeof的区别

一、sizeof    sizeof(...)是运算符,而不是一个函数。    一个简单的例子:int a;cout    在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。    它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。    由于在编译时计算,因此sizeof不能用来返回动态分配的

2013-08-28 11:07:21 430

转载 Volatile的陷阱

对于volatile关键字,大部分的C语言教材都是一笔带过,并没有做太过深入的分析,所以这里简单整理了一些关于volatile的使用注意事项。实际上从语法上来看volatile和const是一样的,但是如果const用错,几乎不会有什么问题;而volatile用错,后果可能很严重。所以在volatile的使用上,建议大家还是尽量求稳,少用一些没有切实把握的技巧。注意volatile修饰

2013-08-28 09:52:14 882 1

转载 可重入和不可重入

这种情况出现在多任务系统当中,在任务执行期间捕捉到信号并对其进行处理时,进程正在执行的指令序列就被信号处理程序临时中断。如果从信号处理程序返回,则继续执行进程断点处的正常指令序列,从重新恢复到断点重新执行的过程中,函数所依赖的环境没有发生改变,就说这个函数是可重入的,反之就是不可重入的。众所周知,在进程中断期间,系统会保存和恢复进程的上下文,然而恢复的上下文仅限于返回地址,cpu寄存器等之类的

2013-08-27 10:31:14 504

转载 int *p=NULL和*p= NULL有什么区别

很多初学者都无法分清这两者之间的区别。我们先看下面的代码:int *p = NULL;这时候我们可以通过编译器查看p 的值为0×00000000。这句代码的意思是:定义一个指针变量p,其指向的内存里面保存的是int 类型的数据;在定义变量p 的同时把p 的值设置为0×00000000,而不是把*p 的值设置为0×00000000。这个过程叫做初始化,是在编译的时候进行的。明白了什么是初

2013-08-27 09:47:00 2174

转载 const char*和char* const

1、const char*Const char*类型是指向常量的指针,注意此时const所在的位置:在“*”的前面。Const在char的前面或后面都是一样的,但通常将const放置在char的前面,对一个利用const char*类型定义的常量指针来说,不能修改其指向内存中的内容,但可以修改其所指向的内存地址。const char*类型的使用方法如下:char ch[5] = "lisi

2013-08-20 09:51:06 795

转载 strtol()详解

今天,在review 一些代码的时候,看到了strtol()这个函数,由于以前使用它的时候,还没有深刻的了解,这次,我决定探个究竟。网上关于这个函数的资料大都来源于同份资料,linux库函数,讲的不够细致。于是,我花了几个小时,认真地尝试其功能,并整理了这篇文章,希望能对C语言的爱好者一些帮助。希望大家能够将本文中发现的错误及时反馈给我,以便修正。我的信箱是。+------

2013-08-15 17:31:47 573

转载 五险一金,终于懂了!

养老保险:    一般要交满15年,到退休的时候才能终生享受养老金,所以想拿养老金的人请务必在自己退休前15年就开始交。如果到退休年龄交养老保险不满15年,那等到你退休的时候国家会把你个人帐户上存的8%的养老金全部退给你。那单位给你交的21%到哪里去了?国家把单位为你交的21%的钱全部划到国家的养老统筹基金里了。国家规定,退钱的时候只退给个人自己扣交的钱,单位为他交的钱全部都为国家做贡献。退休

2013-07-21 15:23:00 838

转载 warning: function declared implicitly错误原因

line 10: warning: function declared implicitly这是由于没有声明函数原型造成的。在a.c中,void main(){.....delay();....}在b.c中void delay(){}如果就只是这样的话,就会出现上面的worning的。解决办法是在b.h中写 extern void delay

2013-07-18 15:21:38 1785

转载 IAR包含文件的路径定义

1) 在定义包含文件路径的文本框中,定义包含文件的路径有两种很重要的语法,    一是$TOOLKIT_DIR$,这个语法表示包含文件的路径在IAR安装路径的8051 文件夹下,也就是说如果IAR 安装在C 盘中,哪么它就表示C:\ProgramFiles\IAR Systems\Embedded Workbench 4.05 Evaluation version\8051这个

2013-07-18 01:43:08 1496

转载 IAR contains unknow tools 解决方法

在IAR工程下有这么三个文件用于描述工程,后缀名分别为.eww, .ewp, .ewd:.eww  --> IAR EWARM工作区文件,描述工作区中包含那些project;.ewd   --> C-SPY调试器项目设置文件;.ewp   --> IAR EWARM项目文件,有关项目的配置信息全在里面; 所以如果出现以下错误 “The pro

2013-07-17 16:37:34 11327

原创 c/c++中#include <>与#include""区别

而""首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。 引用的是编译器的类库路径里面的头文件" "引用的是你程序目录的相对路径中的头文件假如你编译器定义的自带头文件引用在C:\Keil\c51\INC\下面,则#include引用的就是C:\Keil\c51\INC\stdio.h这个头文

2013-07-12 11:11:16 649

转载 Register int i;的含义

在《C陷阱与缺陷》的练习5-2中看到了Register int  .Register声明的作用是为了提高效率。 它明确要求CPU把变量始终保存在寄存器里面,直至它消亡。 不过现代编译器都很厉害,根本不需要你多此一举。 所以根本就极少用。 补充:         大多数情况下,你声明了也没有用,因为编译器不会照你说得做,而是在系统优化的时候自己决定

2013-07-10 10:03:31 2990

转载 switch… case 语句的用法

public class Test7 { public static void main(String[] args) { int i=5; switch(i) { case 1: System.out.println("one"); case

2013-06-25 14:38:54 1141

转载 C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别

1.C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。从作用域看:1>全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。2>静态局部变量具有局部作用域

2013-06-18 20:32:40 448

转载 指针函数与函数指针的区别

一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针     类型标识符    *函数名(参数表)      int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函

2013-06-18 20:19:30 422

转载 几个ZigBee协议栈和操作系统

1、freakz协议栈和contiki操作系统。    freakz是一个彻底的开源zigbee协议,而contiki也是一个彻底的开源操作系统,而且这个操作系统短小精悍,非常适合“物联网”时代的MINI型设备,同时,这套系统在全球已经拥有了众多的支持与使用者,已经开发了非常多的应用,甚至有像IPV6这么强大而且的应用,可以在其官方网站上下载到全套的代码!contiki是开源的,可移植的,

2013-05-23 20:14:10 1260

转载 研究生了,你会查文献吗??这里能会有所帮助

研究生了,你会查文献吗??这里能会有所帮助研究生了,大家抱怨最多的就是:“老师只给了一个研究方向和几个关键词,我到哪去找最新的英文文献啊?”或者是:“我对这个方面根本就了解不多,我怎么知道这个方面那里在研究啊?他们在研究什么啊?万一我想的思路别人已近写出东西了,我再做出来不就发不了文章了?”现在我就来介绍一个方法可以很好的解决这个问题!!首先,我们常用的数据库!

2013-04-17 19:07:39 1596

转载 sdram文章精华

SDRAM的工作原理、控制时序、及相关控制器的配置方法一直是嵌入式系统学习、开发过程中的一个难点。掌握SDRAM的知识对硬件设计、编写系统启动代码、提高系统存取效率、电源管理都有一定的意义。本文想通过:1.SDRAM的工作原理。        2.HY57V561620 SDRAM介绍。        3.S3C2410和HY57V561620的接线方法。        4

2013-04-14 10:47:25 649

转载 基于ARM的RAM存储器接口设计

SDRAM在系统中主要用作程序的运行空间,数据及堆栈区。当系统启动时,处理器首先从复位地址起始处开始读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM中运行,以提高系统的运行速度,同时,系统堆栈、用户堆栈以及运行数据也都放在SDRAM中。1  SDRAM原理分析本节先介绍了SDRAM的基本原理,然后介绍了一个具体SDRAM芯片HY57V641620HG的特性和引脚描述。1

2013-04-01 13:25:33 1065

转载 卸载cygwin完美方法

具体步骤如下:1.删除安装用的临时文件夹(在cygwin里输入命令)(如果你没设可以跳过这步,可以去c盘看看有没有什么文件夹是在安装了cygwin之后产生的,一般那就是了)$ rm -f /cygdrive/c/你的临时文件夹2.停止cron service(没开启此服务的可以跳过,我的默认就没开启)$ cygrunsrv --stop cron$ cygrunsrv --re

2013-03-05 09:38:37 870

转载 C++与Java比较

“作为一名C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且Java的语法无疑是非常熟悉的。事实上,Java本来就是从C++衍生出来的。”  然而,C++和Java之间仍存在一些显著的差异。可以这样说,这些差异代表着技术的极大进步。一旦我们弄清楚了这些差异,就会理解为什么说Java是一种优秀的程序设计语言。本附录将引导大家认识用于区分Java和C++的一些重要特征。  (1) 最

2013-03-04 16:27:51 278

JLink、JTAG接口详细图解

JLink、JTAG接口详细图解,在用JTAG下载调试的时候老是出现问题,特意整理的。 有详细的图解,20针的接口以及14针的接口图

2013-09-04

ucos移植到S3C2410

ucos移植到S3C2410经测试完成 添加多个让你误正常运行 添加按键控制led和按键控制蜂鸣器PWM

2012-08-22

s3c2410 ucos移植 测试完成

s3c2410 ucos移植 测试完成

2012-08-22

FS2410 ucos移植 测试完成

FS2410 ucos移植 测试完成

2012-08-22

最新dos命令行大全

最新 dos命令行大全

2012-08-22

总线的概念

总线的概念对初学者理解总线 有很大的帮助

2012-08-22

ucos移植ARM9移植过程及心得

ucos移植ARM9 移植过程及心得

2012-08-22

一步一步教你使用uCOS-II组合

一步一步教你 使用u COS-II组合

2012-08-22

完美解读Linux中文件系统的目录结构

完美解读Linux中文件系统的 目录结构

2012-08-22

Linux移植之Step By Step

Linux移植之Step By Step是一篇很详细的教你如何一步一步学习LINUX

2012-08-22

ARM中断嵌套

ARM中断嵌套简要介绍了在ARM中哪些2处理器可以处理ARM中断嵌套

2012-08-22

使用uCOS-II操作系统的短信息电话机

使用uCOS-II操作系统的 短信息电话机

2012-08-22

实时嵌入式操作系统ucos-II在ARM9上的移植应用

实时嵌入式操作系统ucos-II在ARM9上的移植应用

2012-08-22

嵌入式学习指引--Linux下60个系统命令详解

嵌入式学习指引--Linux下60个系统命令详解

2012-08-22

嵌入式系统看门狗的使用

嵌入式系统看门狗的使用

2012-08-22

建立一个属于自己的AVR的RTOS

建立一个属于自己的AVR的RTOS教你如何建立一个属于自己的AVR的RTOS

2012-08-22

简易多任务OS设计

简易多任务OS设计简要介绍了如何实现

2012-08-22

基于嵌入式实时操作系统的程序设计技术

基于嵌入式实时操作系统的 程序设计技术

2012-08-22

uCOS任务堆栈的深入分析

uCOS任务堆栈的深入分析简要分析了uCOS任务堆栈

2012-08-22

uCOS-II在ARM系统上的移植与实现

uCOS-II在ARM系统上的移植与实现

2012-08-22

ucos—II下的九个C语言文件功能函数大全

ucos—II下的九个C语言文件功能函数大全

2012-08-22

uCOSii任务设计

uCOSii任务设计简要介绍了uCOSii在任务设计时需要注意的一些方面

2012-08-22

uCOS-II的核心算法

uCOS-II的核心算法介绍了uCOS-II用到的的核心算法

2012-08-22

uCOS-II 实时操作系统在嵌入式平台进行移植的一般方法和技巧

uCOS-II 实时操作系统在嵌入式平台进行移植的一般方法和技巧

2012-08-22

uCOS_II源码中文译注资料-钟常慰

uCOS_II源码中文译注资料是钟常慰先生注释的

2012-08-22

uCOS_II_2.52源码中文译注,每句都有注释

uCOS_II_2.52源码中文译注,每句都有注释,是初学者更加容易理解

2012-08-22

S3C2410平台UCOS移植笔记

S3C2410平台UCOS移植笔记简要介绍了一s3c2410为平台,移植UCOS的过程

2012-08-22

Linux-ARM学习过程

Linux-ARM学习过程这篇文章简要介绍了初学者Linux-ARM学习过程

2012-08-22

linux_C函数库中文手册

linux_C函数库中文手册这篇文章简要介绍了 linux_C函数库的一些文件

2012-08-22

GRUB源代码分析

GRUB源代码分析 简要介绍了GRUB源代码

2012-08-22

ARM9中断ISR分析.

ARM9 S3C2410 中断ISR分析. 分析了ARM9中断产生到执行的过程

2012-08-22

S3C2410启动代码小结

S3C2410启动代码小结这篇文章是我在学习ARM一段时间之后对启动代码的了解

2012-08-22

2440的Main函数之Isr_Init分析

2440的main.c_之Main函数之Isr_Init分析这篇文章很详细的介绍了ARM中断系统的产生

2012-08-22

S3c2410启动代码详解

详细介绍了S3C2410的启动代码

2012-08-22

从单片机初学者迈向单片机工程师

从单片机初学者迈向单片机工程师这片文章是以为从事侵入式多年的学长写的,从不同的角度展示学习单片机的各种方法,最可贵的是他对引入操作系统的思想

2012-08-22

DOS命令大全

针对现在日新月异的科技发展,了解一定的DOS知识对自己了解计算机还是有很大帮助的

2012-08-22

ARM——分散加载描述文件.

ARM——分散加载描述文件 对于初学ARM的人来说,这篇文章是个不错的入门知识

2012-08-22

联想A500刷机

联想A500刷机 教程

2012-04-30

蘑菇云使用 方法

蘑菇云 刷机 使用 方法

2012-04-30

投稿函格式

投稿函格式 格式

2012-04-30

空空如也

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

TA关注的人

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