自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 堆与栈的区别

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

2010-10-19 12:57:00 416

转载 Debugging with GDB (入门篇)

Debug 是大家常常用到的东西.不管是自己写程式也好,还是想改改别人写好的东西, 又或者帮人家捉捉虫.总之呢,绝对是个常常用的到的东西.Dos, windows 底下,通常大家都在用 softice. 这里我就不介绍了,因为在前面的 "学习程式"中的"Assembly"里面已经有了很详细的介绍了.这里我来说说 linux 底下的 GDB 吧. GDB 的全称是 GNU Debuger. 是 linux 底下的一种免费的 debug 程式.随然介面不像 SoftIce 那麽好,但是功能也绝对

2010-10-19 08:24:00 982

转载 C++学习基础知识

<br />一、#include “filename.h”和#include 的区别<br />#include “filename.h”是指编译器将从当前工作目录上开始查找此文件<br />#include 是指编译器将从标准库目录中开始查找此文件<br /> <br />二、头文件的作用<br />加强安全检测<br />通过头文件可能方便地调用库功能,而不必关心其实现方式<br /> <br />三、* , &修饰符的位置<br />对于*和&修饰符,为了避免误解,最好将修饰符紧靠变量名<br /> 

2010-10-14 13:37:00 331

原创 Linux下的段错误产生的原因及调试方法

<br />简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址.<br /><br />一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以及数据段的起

2010-10-14 13:27:00 576

转载 GCC 命令行详解

GCC 命令行详解[转帖]<br /> <br />1、gcc包含的c/c++编译器<br />gcc、cc、c++、g++<br />gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译<br />2、gcc的基本用法<br />gcc test.c这样将编译出一个名为a.out的程序<br />gcc test.c -o test这样将编译出一个名为test的程序<br />-o参数用来指定生成程序的名字<br />3、为什么会出现undefine

2010-10-14 13:18:00 435

转载 经典问题1 :c/c++ 程序设计 ---赋值语句

------------------------------------------------------------------经典问题1:c/c++ 程序设计 ---赋值语句-------------------------------------------------------------------     1)面试题:what does the follow program print?     1    #include      2          3    u

2010-09-28 09:36:00 396

转载 经典问题2:c/c++ 程序设计 ---i++问题

<br />-------------------------------------------------------------------<br />经典问题2:c/c++ 程序设计 ---i++问题<br />-------------------------------------------------------------------<br />      1)面试题:What will be the output of the following C code?<br />

2010-09-28 09:34:00 353

转载 经典问题3:c/c++ 程序设计 ---类型转换问题

<br />-------------------------------------------------------------------<br />经典问题3:c/c++ 程序设计 ---类型转换问题<br />-------------------------------------------------------------------<br /><br />    1)面试题:下面程序的结果是多少?<br />     1    #include <iostream> <

2010-09-28 09:33:00 312

转载 经典问题4:c/c++ 程序设计 ---float类型转换问题

<br />-------------------------------------------------------------------<br />经典问题4:c/c++ 程序设计 ---类型转换问题<br />-------------------------------------------------------------------<br />   面试题:下面程序的结果是多少?(2009-07-26)<br />     1    #include <iostream

2010-09-28 09:31:00 534

转载 经典问题5:c/c++ 程序设计 ---usigned char类型转换问题

-------------------------------------------------------------------------------------------<br />经典问题5:c/c++ 程序设计 ---usigned char类型转换问题<br />--------------------------------------------------------------------------------------------<br />面试题:下

2010-09-28 09:30:00 632

转载 经典问题6 c/c++ 程序设计 ---与或非问题

(1)面试题:用一个表达式,判断一个数N是否是2的幂次方(2,4,6,8,...),不可以用循环语句做。     1     #include      2     #include      3     #include      4            5    int main(int argc, char **argv)       6    {       7        unsigned int n = atoi(argv[1]);       8     

2010-09-28 09:26:00 1427

转载 经典问题7 c/c++ 程序设计 ---0、1串个数统计问题

(1)面试题:下面程序的结果是多少?     1    #include      2    #include      3          4    using namespace std;      5          6    int main()      7    {      8        int count = 0;      9        int m=9999;     10        while(m){     11       

2010-09-28 09:02:00 627

转载 经典问题8:c/c++ 程序设计 ---bit位逆转高效算法问题

<br />  (3)面试题:写一个函数,接受一个unsigned char的参数,返回一个unsigned char。<br />        函数要完成的功能是:把这个8bit的数从高到低翻转过来。<br />        比如0x80转换为0x01, 0xA4转换为0x25。0xA4是 10100100 翻转过来就是 00100101,也就是0x25。<br />解答:<br />     1    #include <iostream> <br />     2    #in

2010-09-28 08:53:00 1155

转载 经典问题12:数据结构基础 ---堆

<br />=====================================<br />    1)面试题:请讲述heap与stack的差别。<br />答案:<br />1)heap是堆,stack是栈;<br />2)stack 的空间由操作系统自动分配/释放,heap上的空间手动分配/释放;<br />3)stack 空间有限,heap是很大的自由存储区;<br />4)c中的malloc函数分配的内存空间即在堆上,c++中对于的是new操作符;<br />5)程

2010-09-28 08:51:00 458

转载 经典问题11: 位运算与嵌入式编程相关问题

<br />-------------------------------------------------------------------<br />经典问题11: 位运算与嵌入式编程相关问题<br />-------------------------------------------------------------------<br /><br />    (1)面试题:求下列程序的输出结果。<br />      1    #include <stdio.h> <br /

2010-09-28 08:50:00 526

转载 经典问题10:指针与引用 ---指针相关问题

<br /> (1)面试题:指针和引用的差别?<br />答案:<br />★ 相同点:<br />1. 都是地址的概念;<br />指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。<br /><br />★ 区别:<br />1. 指针是一个实体,而引用仅是个别名;<br />2. 引用使用时无需解引用(*),指针需要解引用;<br />3. 引用只能在定义时被初始化一次,之后不可变;指针可变;<br />4. 引用没有 const,指针有 const

2010-09-28 08:46:00 418

原创 经典问题9:c/c++ 程序设计 ---基本数据处理问题

<br />(1)面试题 : There are two int variables:a and b,don't use “if”,”?:”<br />“switch”or other judgement statement,find out the biggest one of the two numbers.<br /><br />答案:<br />方案一:<br />int max = ((a+b)+abs(a-b))/2<br />方案二:<br />BIG(a,b)((((

2010-09-28 08:45:00 703

转载 C语言嵌入式系统编程修炼之(六)性能优化

<br />C语言嵌入式系统编程修炼之性能优化<br />     使用宏定义<br /><br />  在C语言中,宏是产生内嵌代码的唯一方法。对于嵌入式系统而言,为了能达到性能要求,宏是一种很好的代替函数的方法。<br /><br />  写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个:<br /><br />  错误做法:<br /><br /> #define MIN(A,B)  ( A <= B ? A : B )<br /><br />  正确做法:<br /><b

2010-09-28 08:04:00 311

转载 C语言嵌入式系统编程修炼之(五)键盘操作

<br />处理功能键<br /><br />  功能键的问题在于,用户界面并非固定的,用户功能键的选择将使屏幕画面处于不同的显示状态下。例如,主画面如图1:<br /><br /> <br /> 图1 主画面<br /><br />  当用户在设置XX上按下Enter键之后,画面就切换到了设置XX的界面,如图2:<br /><br /> <br /> 图2 切换到设置XX画面<br /><br />  程序如何判断用户处于哪一画面,并在该画面

2010-09-28 08:03:00 413

转载 C语言嵌入式系统编程修炼之(四)屏幕操作

<br />C语言嵌入式系统编程修炼之屏幕操作<br />汉字处理<br /><br />  现在要解决的问题是,嵌入式系统中经常要使用的并非是完整的汉字库,往往只是需要提供数量有限的汉字供必要的显示功能。例如,一个微波炉的LCD上没有必要提供显示"电子邮件"的功能;一个提供汉字显示功能的空调的LCD上不需要显示一条"短消息",诸如此类。但是一部手机、小灵通则通常需要包括较完整的汉字库。<br /><br />  如果包括的汉字库较完整,那么,由内码计算出汉字字模在库中的偏移是十分简单的:汉

2010-09-28 08:01:00 356

转载 C语言嵌入式系统编程修炼之(二)软件架构篇

<br />C语言嵌入式系统编程修炼之软件架构篇<br />   模块划分<br /><br />  模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了相对论),C语言模块化程序设计需理解如下概念:<br /><br />  (1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明;<br

2010-09-28 08:00:00 265

转载 C语言嵌入式系统编程修炼之(三)内存操作

<br />C语言嵌入式系统编程修炼之内存操作<br />数据指针<br /><br />  在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。以指针直接操作内存多发生在如下几种情况:<br /><br />  (1) 某I/O芯片被定位在CPU的存储空间而非I/O空间,而且寄存器对应于某特定地址;<br /><br />

2010-09-28 08:00:00 370

转载 C语言嵌入式系统编程修炼之(一):背景篇

<br />C语言嵌入式系统编程修炼之背景篇<br />     不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发的一般选择。而与之相比,C语言--一种"高级的低级"语言,则成为嵌入式系统开发的最佳选择。笔者在嵌入式系统项目的开发过程中,一次又一次感受到C语言的精妙,沉醉于C语言给嵌入式开发带来的便利。<br /><br />  图1给出

2010-09-28 07:59:00 277

转载 C++内存管理与内存泄漏及其检测

<br />一、内存错误的分类<br />a.内存访问错误<br />对内存进行读或写时发生的错误,可能是读未被初始化的内存单元,也可能是读写错误的内存单元。   <br />b.内存使用错误<br />主要是在动态请求内存之后没有正确释放产生的错误。<br />二、内存剖析(典型的c++内存模型)<br /> <br />BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BS

2010-09-28 07:34:00 459

原创 Visual C++线程同步技术剖析

<br />使线程同步<br /><br />  在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。<br /><br />  如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。例如,多个线程同时访问同一个全局变量,如果都是读取操作,则不会出现问题。如果一个线程负责改变此变

2010-09-28 07:30:00 221

原创 深入浅出Win32多线程程序设计之(五):综合实例

<br />本章我们将以工业控制和嵌入式系统中运用极为广泛的串口通信为例讲述多线程的典型应用。<br /><br />  而网络通信也是多线程应用最广泛的领域之一,所以本章的最后一节也将对多线程网络通信进行简短的描述。<br /><br />1.串口通信<br /><br />  在工业控制系统中,工控机(一般都基于PC Windows平台)经常需要与单片机通过串口进行通信。因此,操作和使用PC的串口成为大多数单片机、嵌入式系统领域工程师必须具备的能力。<br /><br />  串口的使用需要

2010-09-28 07:29:00 502

原创 深入浅出Win32多线程设计之(四):MFC的多线程

<br />1、创建和终止线程<br /><br />  在MFC程序中创建一个线程,宜调用AfxBeginThread函数。该函数因参数不同而具有两种重载版本,分别对应工作者线程和用户接口(UI)线程。<br /><br />  工作者线程<br />CWinThread *AfxBeginThread(<br /> AFX_THREADPROC pfnThreadProc, //控制函数<br /> LPVOID pParam, //传递给控制函数的参数<br /> int nPri

2010-09-28 07:27:00 423

原创 深入浅出Win32多线程程序设计之(三):线程通信

<br />深入浅出Win32多线程程序设计之线程通信<br /> 线程之间通信的两个基本问题是互斥和同步。<br /><br />  线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。<br /><br />  线程互斥是指对于共享的操作系统资源(指的是广义的"资源",而不是Windows的.res文件,譬如全局变量就是一种共享资源),在各线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何

2010-09-28 07:26:00 365

原创 深入浅出Win32多线程程序设计(二):线程控制

  深入浅出Win32多线程程序设计之线程控制<br />      WIN32线程控制主要实现线程的创建、终止、挂起和恢复等操作,这些操作都依赖于WIN32提供的一组API和具体编译器的C运行时库函数。<br /><br />  1.线程函数<br /><br />  在启动一个线程之前,必须为线程编写一个全局的线程函数,这个线程函数接受一个32位的LPVOID作为参数,返回一个UINT,线程函数的结构为:<br />UINT ThreadFunction(LPVOID pParam)<br />

2010-09-28 07:24:00 253

转载 深入浅出Win32多线程程序设计(一)

<br />  深入浅出Win32多线程程序设计之基本概念<br />      引言<br /><br />  从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。<br /><br />  理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环,当我们精通了Win32多线程程序设计后,理解和学习其它操作系统的多任务控

2010-09-28 07:22:00 404

转载 手机RF专题讲座

<br />在整理以前的资料时,发现一篇文档,是关于手机RF的专题讲座。文档对手机RF的讲解深入浅出,涵盖内容丰富。虽然文档比较老,但是拿来作为一篇深入介绍性的文档,却也不错。可以给哪些从事手机RF开发或者感兴趣的同学做个参考。前言<br />射频部分是通信设备的重要组成部分,是进行双向沟通的桥梁。了解该部分的组成和工作原理对我们开展工作有很重要的意义。为此,DIAG L9的同事针对该部分编写了这个专题培训资料,它包括了:接收机原理、接收机基本电路、手机的RF基本电路、手机的相关技术、手机的诊断和维修编写这

2010-09-28 07:16:00 4076 1

转载 手机RF开发——HW development

<br />HW development包括schematic和PCB layout design and debug。circuit debug在整个开发过程中是不断重复的。因为,不同产品的结构不同,layout不同,最后的测试结果就不同。根据测试结果,最终来确定需要改变或增加schematics中的哪些components,需要如何修改layout,进行最终的优化。所以,HW development就是一个根据实验结果不断进行性能优化的过程。另外,由于RF是高频layout,这就更需要注意RF的走线

2010-09-28 07:05:00 1748

原创 手机RF开发——驱动开发

<br />前面讲的是手机RF的硬件开发,一旦设计定型,基本就不会在改变,而且一般芯片厂家也会提供demo电路共参考,硬件调试也相对比较简单,都是些经验总结。按照经验积累来做,会觉得越来越简单。但是手机RF的驱动程序开发,估计国内没有几个公司做过,因为它涉及的部分包括基带芯片物理层的实现,协议栈,校准机制和系统整体集成。能做到这些的只能是做基带芯片且有能力开发维护协议栈的公司,这样的公司在国内还没有几家。闲话少说了。<br />手机RF包括三个components:Transceiver射频收发器,PA功率

2010-09-28 07:03:00 3723 2

转载 手机RF开发——前言

<br />结自己手机RF开发的经验,送给已经或者准备从事手机RF开发的朋友。1. 前言<br />2006年5月,从事cell phone RF部分的R&D工作,开发的RF sets是skyworks的SKY74117和SKY77318。2007年1月,开发的RF sets已经基本正常,可以投入量产使用。但经过使用后,发现一些问题:<br />(1)Networks slow synchronization,related with DCOC。<br />(2)High current consumpti

2010-09-28 07:00:00 860

Ftp上传下载源代码

能够实现基本的定时上传和下载的功能.

2008-05-08

空空如也

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

TA关注的人

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