- 博客(22)
- 资源 (3)
- 收藏
- 关注
转载 五大内存分区
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,
2012-08-08 10:49:20 9887 2
转载 Linux开机启动过程分析
Linux开机启动过程分析开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息
2012-08-08 10:10:37 524
原创 0730笔记
1、Python表达式 评论for item in s 遍历s中的元素for item in sorted(s) 按顺序遍历s中的元素for item in set(s) 遍历s中的无重复的元素for item in reversed(s) 按逆序遍历s中的元素for item in set(s).difference(t) 遍历在集合s中不在集合t 的元素for it
2012-07-30 16:08:45 2686
转载 Python中is和==的区别和联系
Python中is和==的区别和联系最近在看代码时我想起这个问题,虽然以前也曾经遇到过,不过一直没有时间总结,今天就把一些想法写到这里。在Python中,一切皆对象,一切值皆引用,这是Python不同于Java的一个重要区别(在Java中有八种基本类型不是引用类型,但这不是本文要讨论的)。比较两个对象通常有两种方法,一种是比较这两个对象指向的内存地址是否相同,另一种就是两个对象的字
2012-07-30 14:18:24 783
转载 0723 linux中设备与驱动关联
1、对于Linux驱动开发来说,设备模型的理解是根本,顾名思义设备模型是关于设备的模型,设备的概念就是总线和与其相连的各种设备了。 总线、设备、驱动,也就是bus、device、driver,在内核里都会有它们自己专属的结构,在include/linux/device.h 里定义。 首先是总线,bus_type.struct bus_type { const char
2012-07-23 15:05:26 858
转载 堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(s
2012-07-13 09:23:04 373
原创 python处理网页过程中出现的问题
1、url = "www.main.org">>> raw = urlopen(url).read()Traceback (most recent call last): File "", line 1, in raw = urlopen(url).read() File "/usr/lib/python2.7/urllib.py", line 86, in
2012-07-12 16:24:48 878
转载 gcc与g++区别
误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。2.编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的
2012-07-12 14:05:38 388
转载 想成为嵌入式程序员应知道的16个基本问题
这是嵌入式C程序员的基本知识。作者在Embedded Systems Programming杂志上发表了很多嵌入式系统开发方面的文章。 C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出
2012-07-12 09:31:08 1883
转载 预处理指令作用
1、预处理指令作用# 空指令,无任何效果 #include 包含一个源代码文件 #define 定义宏 #undef 取消已定义的宏 #if 如果给定条件为真,则编译下面代码 #ifdef 如果宏已经定义,则编译下面代码 #ifndef 如果宏没有定义,则编译下面代码 #elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码 #endif 结束一
2012-07-12 09:27:56 651
原创 minicom能输出串口信息不能输入
解决方法 minicom -s选择serial port setup选项如果F Hardwate Flow Control :yes,则按键盘上f键,yes改为no。回车保存退出后就可以输入了
2012-07-06 16:27:21 3246 1
原创 0705 设计系统
1、首先启动核心,核心可以在mtd或者tftp里面。一般如果bootloader支持tftp在调试的时候用tftp,不支持用U盘、网线烧写核心在mtd里。如果bootloader比较差,只能用串口。所有的bootloader都支持串口。2、文件系统。可以用nfs、U盘、硬盘SD卡mtd等。3、设计的时候可以弄2个文件系统,一个做成很小的镜像文件存在mtd里面,启动的时候先把它复制到内存,其
2012-07-05 19:13:14 347
原创 0705 跑android板子的时候出现的问题
1、用nfs配置正确出现GMAC:eth0: Link is downGMAC:Retrying Auto-NegotiationGMAC:Retrying Auto-NegotiationGMAC:Retrying Auto-NegotiationGMAC:Auto Negotiation FailedGMAC:eth0 : Link is UpGMAC:eth0:
2012-07-05 19:07:39 573
原创 INPUT驱动
1、Linux 专门对输入设备。键盘,鼠标,手柄,触摸屏。按键。封装一个类驱动。主要统一与应用程序接口。这一类的设备结点都是在/dev/input/eventn( 0用户程序读驱动的输入都采用统一格式,即struct input_event,方便应用程序来读写。2、Linux/input.hstruct input_event {struct timeval time;
2012-07-04 15:06:46 772
原创 0704最简单的驱动hello
1、程序hello.c#include #include MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_ALERT "hello\n"); return 0;}static void hello_exit(void){
2012-07-04 13:32:16 388
转载 0704MFC
1.CObject类为MFC总类,该类下面有一个重要的类CCmdTarget。而CCmdTarget类下面又有四个重要的继承类,分别为:CWinThread、CDocument、CDocTemplate、CWnd类。所以,可以得出一个大概继承图,如图所示:CObject--->CCmdTarget ---->CWinThread ---->CWinApp----->CDocTempla
2012-07-04 08:42:55 554
转载 GPIO
编写控制程序GPIO的配置文件在/sys/class/gpio目录下,控制程序可以分为四个步骤:配置GPIO:在/sys/class/gpio目录下可以看到文件export,调用该文件以实现配置。该文件对所有GPIO编号,从0开始。GPIOn_x的编号为32*n+x,例如此处用的GPIO1_6的编号为32*1+6=38。在终端输入:# echo "38" > /sys/class/
2012-07-03 09:23:48 5457
转载 守护进程创建步骤
daemon进程步骤1. 调用fork产生一个子进程,同时父进程退出,所有后续工作都在子进程中完成。如果我们是从命令行执行的该程序,这可以造成程序执行完毕的假象,shell会回去等待下一条命令;刚刚通过fork产生的新进程一定不会是一个进程组的组长,这为第2步的执行提供了前提保障。由于父进程已经先于子进程退出,会造成子进程没有父进程,变成一个孤儿进程(orphan)。每当系统
2012-07-02 16:09:08 2855
转载 0702Udev:介绍现代Linux系统的设备管理
Linux发行版里面的热插拔(这个词用于描述将设备插入已经运行的系统的过程)功能是三个组件的融合:Udev, HAL, and Dbus. Udev为已经连接在系统上面的设备节点提供一个动态设备目录。当设备插入或移出系统的时候,Udev就在 /dev目录下面创建或者删除设备节点文件。Dbus类似于系统总线,主要用于进程间通信。HAL从Udev的服务中获取信息,当一个设备连接到系统时它
2012-07-02 16:06:31 613
转载 ioremap_nocache函数
ioremap_nocache函数注解ioremap_nocacheioremap_nocache 把内存映射到CPU空间void __iomem * ioremap_nocache (unsigned longphys_addr, unsigned longsize); phys_addr要映射的物理地址 size要映射资源的大小调用ioremap_n
2012-07-02 11:19:29 1088
转载 assert(笔记)
1、assert是头文件assert.h中的一个宏定义判断值为真,则当什么事都没发生过,继续往下执行,判断值为假,则报错退出程序:代码中适当的地方使用断言(Assertion)可以有效地帮助我们测试程序。也许有人会问:我们用几个测试函数来测试binarysearch,那么这几个测试函数又用什么来测试呢?在实际工作中我们要测试的代码绝不会像binarysearch这么简单,而我们编写的测试函数往
2012-06-28 14:37:29 599
原创 0628_编码风格
一、写函数的时候遵循 实现一个函数只是为了做好一件事情,不要把函数设计成用途广泛、面面俱到的,这样的函数肯定会超长,而且往往不可重用,维护困难。函数内部的缩进层次不宜过多,一般以少于4层为宜。如果缩进层次太多就说明设计得太复杂了,应考虑分割成更小的函数(Helper Function)来调用。函数不要写得太长,建议在24行的标准终端上不超过两屏,太长会
2012-06-28 09:41:26 306
TCP/IP详解卷 pdf格式
2009-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人