- 博客(12)
- 资源 (7)
- 收藏
- 关注
原创 void * 与 空指针NULL
3:释放指针 1)若p是一个值为NULL的空指针,且p是动态分配的,则delete p是合法的,但没有任何意义。 2)通常delete p之后,p就变成了未定义,以后都不可以再使用p了,但有些机器将p指向的地址仍然保留,但p所指向的内存已释放,成为悬垂指针,因此释放指针p之后,要将p=NULL,这样p就变成未指向任何对象的指针了。
2013-06-30 00:42:49 1102
转载 Linux内核之 “typedef int (init_fnc_t) (void);”
我们通常情况下会如下使用 typedef :typedef int MyInt;MyInt a;这个时候我们的MyInt 就和int是一样的意思。而对于函数的申明我们通常会这样申明:int InitFunction() (void);此时表示申明了一个函数名为InitFunction的函数, 函数没有任何的形参,返回值类型为int型。而对于 typedef int(in
2013-06-30 00:41:11 1271
原创 字符设备驱动
遇到的问题总结如下1. memdev_init 主设备号的使用 static mem_major = MEMDEV_MAJOR; module_param(mem_major, int, S_IRUGO); 传入数据到内核,很质疑为什么这样传入?? 这里采用静态分配,一定主要不能跟现有设备号重复,否则加载之后,会出现卸载不掉模块的情况 rmmod: re
2013-06-30 00:37:00 812
原创 u-boot移植(Mini2440)
开发平台:WIN7 64 Mini2440 u-boot-2008-10 Red Hat Enterprise 5.1 VMvare9.0从网上以及有关书籍总结而来,移植uboot(简略)一般的步骤如下: 注意:以下都以Mini440为开发平台,不再下面说明1. 创建单板目录和单板头文件,修改Makefile 比如mini2440,需要在uboot根目录下创建目录 boar
2013-06-14 23:58:22 855
原创 u-boot编译链接过程分析(ARM)
1.config.mk通常配置文件生成之后,即可使用make all进行编译,在如下Makefile里面ifeq ($(obj)include/config.mk,$(wildcard $(obj)include/config.mk))# load ARCH, BOARD, and CPU configurationinclude $(obj)include/config.mkex
2013-06-14 23:20:56 1157
原创 u-boot配置过程分析(ARM)
1.u-boot源码结构 源码目录下一般包含以下目录: (1) 平台相关的或者开发板相关的,比如cpu/、baord/ (2) 通用的函数,比如common/ (3)通用的设备驱动,比如drivers/ (4)u-boot工具、示例程序、文档,比如/tools/、/examples、/doc2.u-boot生成配置文件过程 根据顶层r
2013-06-14 23:19:52 887
原创 u-boot启动过程源码分析之第一阶段(S3C24XX系列)
本文章以u-boot-2008-10为分析对象1.bootloader两阶段功能 bootloader启动可以分为单阶段,多阶段两种,通常多阶段能提供更复杂的功能以及更好的移植性,这里主要讨论两阶段的启动 一般第一阶段使用汇编来实现,它完成一些依赖于CPU体系结构的初始化,并调用第二阶段的代码; 第二阶段通常使用C语言来实现,实现更复杂的功能,更好的可读性和可移植性(1)bo
2013-06-14 00:32:39 1212
转载 谈结构体struct 初始化多出的点号“.”,数组[]初始化多出的逗号“,”
结构体struct初始化多出的点号“.” 在阅读GNU/Linux内核代码时,我们会遇到一种特殊的结构初始化方式,该方式是书中并没有介绍过的。 这种方式称为指定初始化(designated initializer)。下面我们看一个例子:Linux-2.6.x/drivers/usb/storage/usb.c中有这样一个结构体初始化项目:static struct us
2013-06-13 16:44:40 8442
转载 C-Kermit 在REHL5.1下的安装、配置及使用
1. 因为版本问题不能更新的,需要自己下载源码 地址:http://www.columbia.edu/kermit/ckdaily.html,下载ckermit源码 2. 解压缩到指定的目录 tar xzvf x.tar.gz -C ckermit 3. 进入目录进行编译下载的源码 cd ckermit make linu
2013-06-10 00:05:23 1329
原创 Mini2440 SDRAM、NAND、MMU
1. SDRAM 当加电默认从NAND启动时,先将4K代码复制到Steppingstone内RAM执行,在执行Steppingstone代码时,会将剩余的代码复制到SDRAM执行,但是使用SDRAM必须先对其有关SDRAM的寄存器进行初始化,以便能使用SDRAM 主要包括寄存器: BWSCON、BANKCON0~7、REFRESH、BANKSIZE、MRSRB6~7
2013-06-09 18:57:13 1091
转载 ARM9协处理器CP15、MCR/MRC指令
在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。访问CP15寄存器的指令MCR ARM寄存器到协处理器寄存器的数据传送MRC 协处理器寄存器到ARM寄存器的数据传送MCR指令和MRC指令只能在处理器模式为系统模式时执行,在用户模式下执行MCR指令和MRC指令将会触发未定义指令的异常中断。
2013-06-04 14:11:36 1095
Mini2440 Nor Flash 芯片手册(S29AL016J_00)
2013-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人