自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 裸机程序也可以写关于mmu程序,相当于实现操作系统的部分功能

TQ2440裸机开发试验之MMU.ra http://download.csdn.net/download/opwwwp123/3311755 裸机程序里,程序从flash调入到内存的地址,这个是由谁控制的,还是裸机只能执行单任务,跳入程序的地址就只是0或其它固定地址???

2011-12-07 14:20:01 1148

原创 递归的缺点,如何解决

递归的缺点:递归太深容易造成堆栈的溢出。 帖子一:如何解决递归调用的栈空间不足 推荐答案这个跟C++关系不是太大,跟系统和开发环境有关.并且这个栈的大小,也是可以调节的做好不要在函数内部定义很大的数组.也不能让程序出现无限递

2011-09-18 15:42:53 12321 1

原创 【原创】linux如何给自己写的脚本程序加个环境变量

注:~在LINUX下面是代表HOME这个变量的。什么是环境变量:环境变量是一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如path,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path

2011-08-18 13:21:52 2576 1

转载 【转】数据库新技术:Hadoop和MapReduce的比较

数据库新技术:Hadoop和MapReduce的比较http://www.searchdatabase.com.cn/showcontent_49050.htm?lg=t【TechTarget中国原创】问:Hadoop和MapReduce对数据库发展造成了一定的影响,但是我还是不

2011-07-28 09:31:47 1356

原创 java引用数据类型

http://wenku.baidu.com/view/3fc341737fd5360cba1adb60.htmljava的引用类型必须用new才算是分配了数据空间。引用类型数据是指 ,数据类型 在堆内存中创建的数据,而你拿到的是这个数据的引用。java中除了 int,doubl

2011-07-14 12:19:20 4816

原创 java引用类型

http://wenku.baidu.com/view/3fc341737fd5360cba1adb60.htmljava的引用类型必须用new才算是分配了数据空间。引用类型数据是指 ,数据类型 在堆内存中创建的数据,而你拿到的是这个数据的引用。java中除了 int,do

2011-07-14 12:15:01 691

原创 生成对象必须new吗,不是的,也可以不用,这样对象空间你在栈里。但java里不同

RT,不过,栈的空间很小,做好还是放在堆里,所以一般类定义对象时都是new一个。=========请问C++ 生成对象用栈空间和堆空间和什么区别?用堆空间有什么优势吗?我可懒得去new又去delete。答:二者特性不同,各有适用场合。首先,最重要的一点,对象生存期不同。栈

2011-07-14 11:50:40 2855

转载 【转+分析】JAVA: 为什么要使用"抽象类"? 使用"抽象类"有什么好处?

老是在想为什么要引用抽象类,一般类不就够用了吗。一般类里定义的方法,子类也可以覆盖,没必要定义成抽象的啊。看了下面的文章,明白了一点。其实不是说抽象类有什么用,一般类确实也能满足应用,但是现实中确实有些父类中的方法确实没有必要写,因为各个子类中的这个方法肯定会有不同,所以没有必要

2011-07-14 11:11:15 31955 20

原创 [原创]动态网页和静态网页

静态网页好理解动态网页,我的理解: 就是数据库架构的网页,用户可以自己改变数据库,例如在线采购,发帖子,然后系统可以自动根据数据库生成网页(也就是根据用户提交的信息自动生成的网页)。这个自动生成是由编程来实现的。 =====网络技术日新月异,细心的网友会发现许多网页文件扩展名不再只是“.htm” ,还有 “.php”“.asp”等,这些都是采用动态网页技术制作出来的。

2011-06-29 16:39:00 866

原创 为什么同步通信就需要两端时钟完全同步?

用一个个的脉冲,来说明一个个数据的存在,这就是串行同步通信。按照一定的时间间隔,传输一个个数据,这就是串行异步通信。 所以,同步通信时每个时钟都需要传输一位数据,而异步通信不是,是隔一段时间传输一个,不是每个脉冲。

2011-05-21 10:29:00 8502

原创 [转]N900 USB networking

N900 USB networkingThis page describes how to enable Networking on the N900 via USB. The first part describes how to configure the N900 as a USB pluggable network device. The second part describes how to configure various platforms to use the Nokia N900 as

2011-04-06 13:23:00 2453

原创 【转】IP透视摄像头,基本可以实现(讲透视的原理,滤光片很重要)

<br />首先,必须承认视频是假的,但是,玩过DV的朋友应该都知道一款SONY的机器DSC-F7xx系列吧,还有个别DC支持夜间拍照模式的也可以,当然,机器原厂出来是不可能透视的,但是经过改装后就完全不一样了.<br />             如果群里有公安搞刑侦的朋友应该很清楚,因为那是他们破案的工具之一,比如,一个很重要的文件上面泼了很多墨水怎么办,就可以利用这种透视相机透过表面覆盖的墨水,而看到文件上的字迹.<br />下面,先把成像原理给大家讲一下吧,我也不是专业的,表达可能不好.<br />

2011-04-06 10:05:00 26537 2

原创 【转,总结的很好】SPI、IIC、UART区别

第一个区别当然是名字:      SPI(Serial Peripheral Interface:串行外设接口);      I2C(INTER IC BUS)      UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上:      SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现 多个SPI设备互相连接。提供SPI串行时

2011-03-21 20:46:00 1995

原创 [转,非常不错]关于ARM的一些概念

关于ARM的一些概念 1.ARM中一些常见英文缩写解释 MSB:最高有效位; LSB:最低有效位; AHB:先进的高性能总线; VPB:连接片内外设功能的VLSI外设总线; EMC:外部存储器控制器; MAM:存储器加速模块; VIC:向量中断控制器; SPI:全双工串行接口; CAN:控制器局域网,一种串行通讯协议; PWM:脉宽调制器; ETM:嵌入式跟踪宏; CPSR:当前程序状态寄存器; SPSR:程序保护状态寄存器;

2011-03-21 20:41:00 557

原创 【原创】shell编程入门

根据国嵌一个小时的视频课程制作,虽然是入门,但是感觉很有用处的,没事的时候拿来看看,效率很高,很快就能了解shell。 Shell脚本的概念: 例子如下: echo是打印。echo后面的语句要加双引号 运行shell脚本: sh *.sh 或者直接:./*.sh 上图运行脚本,mkdir命令错误,因为tnt目录已经存在。 删除目录的命令 第一句一定要指定命令解析器: 看到/bin/sh目录下有个/bin/sh, 从颜色来看要知道这是个连接文件。

2011-03-18 22:09:00 537

原创 H264

    解码输出x’(n)    运动估计:牺牲计算量   补偿就是减。但是补偿和运动补偿是不一样的,补偿是单纯的当前帧减前一帧,运动补偿,是减运动估计后的一个预测帧

2011-03-18 20:01:00 478

原创 【原创】国嵌5-4-3 驱动

看这样几个问题? 1)怎么体现出来实在mybus这条总线上 2)驱动找到一个该处理的设备时,驱动做什么 3)驱动和设备怎么匹配的 1)怎么体现出来实在mybus这条总线上 这个结构体里的成员bus说明了这个驱动是位于哪个总线上的 2)驱动找到一个该处理的设备时,驱动做什么 调用myprobe 3)驱动和设备怎么匹配的 这个是由总线来决定的 看总线bus.c里的函数 设备的名字和驱动的名字进行比较 来看设备的名字 再来看驱动的名字 都是my_dev

2011-03-17 22:09:00 597

原创 【原创】国嵌5-4-3 驱动

看这样几个问题? 1)怎么体现出来实在mybus这条总线上 2)驱动找到一个该处理的设备时,驱动做什么 3)驱动和设备怎么匹配的 1)怎么体现出来实在mybus这条总线上 这个结构体里的成员bus说明了这个驱动是位于哪个总线上的 2)驱动找到一个该处理的设备时,驱动做什么 调用myprobe 3)驱动和设备怎么匹配的 这个是由总线来决定的 看总线bus.c里的函数 设备的名字和驱动的名字进行比较 来看设备的名字 再来看驱动的名字 都是my_dev

2011-03-17 22:01:00 722

原创 [原创]mini2440如何ping到pc

我的开发环境是windows、虚拟机里是Fedora、mini2440. 开始配置ip总是ping不通。 正确的配置: 开发板要和windows的ip要有相同的网关、DNS。ip要和windows的在同一个网段。 连接好网线,就能ping了。

2011-03-17 13:10:00 2193 1

原创 [原创]内核代码导读--应用程序如何访问驱动程序

如:在应用程序中调用read函数,系统调用会自动找到内核的vfs_read()函数(这是系统调用部分,不用管)。 那么就从vfs_read()这个函数看起。 (vfs_read()是个库函数,把函数从用户空间跳到内核空间) file结构体里有个成员是struct file_operations类型的。 这一行将调用驱动程序中的read函数。   上图中的file是struct file指针,看到下图,file结构体里有个file_operations类型的指针,而这个file_ope

2011-03-15 17:03:00 871

原创 【原创】内核符号导出

举例讲解: 例子中有两个内核模块: 第一个模块:hello.c 另一个内核模块 模块1用到了模块2里的函数。 编译。 编译后如果想加载模块成功必须满足以下: 1)先加载模块2,因为模块1要用到模块2的函数。 2)先加载模块2,模块1还是用不了模块2里的函数,必须将模块2的函数导出。导出就是让大家都看的见。     如何导出 在模块2里加上以下:

2011-03-14 21:55:00 572

原创 [转]虚拟机中的linux图形界面如何切换到字符界面

在虚拟机的配置中把Ctrl+Alt快捷键改成其他的。否则虚拟机截获Ctrl+Alt,Linux 根本拿不到。

2011-03-13 20:56:00 3729

原创 [转]Linux驱动程序开发》学习笔记--如何写linux最简单的hello驱动及问题*** missing separator. stop

最简单的hello,world程序,在内核上挂载和卸载我们自己编写的hello模块。说明:本文调试环境fc4,教材是《Linux Device Drivers》第3版英文电子图书。 一、编写hello.c文件 利用vi编辑器,我们键入下面的代码,并保存为hello.c文件。 /** * hello.c *     ------Test for kernel module */ #i nclude           #i nclude         MODUL

2011-03-13 20:29:00 2573

原创 【转】 请教GNU make的扩展语法!

小弟在分析>这本书上第2章的例子的时候,发现有很多关于makefile的语法搞不明白.还请高手指点一下,谢谢! 写的有点乱,请原谅! [例1] makefile: obj-m :=module.o 命令: make -C /usr/src/kernels/2.6.11-1.1369_FC4-i686 M='pwd' modules 问题: 1."obj-m"是在顶层makefile中定义的变量吗? 我记得makefile中变量应该是用"="赋值的,在这里用到的"

2011-03-13 20:15:00 1585

原创 [原创]在开发板上执行程序时提示 /bin/sh: Permission denied

网上找的: 解决了,是因为开发板与系统的交叉编译器版本不一致所导致,而且命令应该是 ./cock.   我的解决办法: chmod 777 hello

2011-03-13 19:06:00 6838

原创 Fedora 9 安装交叉编译工具arm-linux-gcc-4.3.2【转】

Fedora 9 安装交叉编译工具arm-linux-gcc-4.3.2 环境:Fedora 9 STEP 1: 下载arm-linux-gcc-4.3.2.tgz. 把arm-linux-gcc-4.3.2.tgz随便放在一个目录,我放在了/opt。 下载网站1:http://www.arm123.com.cn/linux/arm-linux-gcc-4.3.2.tgz           下载网站2:http://www.arm9.net/download-arm-linux-gcc

2011-03-13 14:00:00 2947 1

原创 /是根目录,./是当前目录

None

2011-03-11 14:23:00 1627

原创 makefile总结

还是看不懂实际的makefile文件,还有那些make命令也不知道这么用的含义是什么。 今天复习下国嵌的视频。之后再学习下内核配置、编译和安装。 今天主要完成这两个学习任务。   2.6的内核大概2w多个源文件(包括头文件),这么多文件如果手工用gcc一个个去编译,不现实。     先来看一个例子:   最终要得到hello 问题1:hello,main.o等,最前面的这些必须这样命名吗,我写成 1、2、3行吗? 写成1、2、3不行,目标的名字只是个名称,生

2011-03-10 17:09:00 858

原创 [转,不错]sizeof()用法汇总&&和strlen的区别

sizeof()用法汇总 sizeof()功能:计算数据空间的字节数 1.与strlen()比较       strlen()计算字符数组的字符数,以"/0"为结束判断,不计算为'/0'的数组元素。       而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。 总之,对于指针,sizeof操作符返回这个指针占的空间,一般是4个字节;而对于一个数组,sizeof返回这个数组所有元素占的总空间。char*与char[]容易混淆,一定要分清,而且c

2011-03-10 11:32:00 692

原创 arm开发板系统安装过程&amp;&amp;国嵌视频里是把supervivi下载到了nor flash里

步骤: 1、用jtag下载suervivi到nor flash里。supervivi只有247KB 2、安装usb下载驱动,打开dnw软件,连接usb下载线。 1)分区:       上面第一步下载的supervivi是下载到nor flash里,这里是格式化nand flash,选下面的X                    2)下载bootloader       选择v       选择v后,发现终端处于等待状态,wating a downlo

2011-03-09 18:06:00 3183

原创 grub属于bootloader

引导加载程序分为两个层次 1、固化在固件(firmware)中的boot程序,如BIOS 2、bootloader

2011-03-08 23:30:00 2143

原创 【转】Linux 里有/lib和/usr/lib,这两个目录下的库文件有什么区别吗?如果没区别为什么又要分开放呢

有区别的。/lib里面给的是root和内核所需so或者a之类的库文件,而/usr/lib是普通用户能够使用的。Linux的程序有两种模式,这个你应该知道,是用户模式和内核模式,和这个也是有关系的,不再冗述。 ================/lib和/usr/lib和/usr/local/lib的区别(zz)文章分类:操作系统简单说,/lib是内核级的,/usr/lib是系统级的,/usr/local/lib是用户级的./lib/ — 包含许多被 /bin

2011-03-08 23:24:00 19077

原创 内核驱动进阶班-2-1(嵌入式linux系统架构)

一个智能手机的软硬件架构   EVM板:评估板   看到:在开发流程的最后也可以开发驱动。和业务相关的驱动,例如产品中要加入wifi,那就做wifi的驱动。 有疑问了,为什么驱动开发不放到流程3,内核移植的时候做呢? 是因为我们需要有一个最小系统,到流程3是做出来一个最小系统。就是说启动后不需要网卡、wifi的驱动,一样可以运行。

2011-03-08 20:50:00 1247

原创 doble型数据在内存中的表示

立刻动手写一小段测试代码就知道了:int main(int argc, char ** argv){ int i; double x = 123456789.123456789; unsigned char* ptr = (unsigned char*)&x; for(i=0; i

2011-03-07 22:23:00 1225

原创 【转】大端格式和小端格式

首先:我们常用的X86结构是小端模式,而KEIL C51则为大端模式。很多的ARM,DSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。   有时候,用C语言写程序时需要知道是大端模式还是小端模式。 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个

2011-03-07 21:53:00 1150

原创 【转】printf(&quot;%f/n&quot;,5)的输出结果为什么是0.000000

1,之所以没输出5,这是C语言设计的原因。2,之所以输出0,这是计算机体系结构的问题。具体来说:printf函数不会进行任何类型转换,它只是从内存中读出你所提供的元素的值(按照%d,%f等控制字符提示的格式)。C语言设计中,int类型一般是32bit或者16bit,而float一般是64bit,并且有可能使用科学计数保存。这点就和huhugo88所说一样,5在内存中为00000000,00000101。而且5一般都在静态区,程序的静态存储区默认是0,那么当用%f来读时,就

2011-03-07 21:31:00 9650 6

原创 arm裸机程序--LED程序设计

arm的逻辑程序需要一个汇编文件,这个在另一篇博文里写了。汇编文件用于初始化寄存器,跳转到main。这里主要看LED程序的c文件。 =================== delay的解释: 单位:   ============================================== 控制寄存器的设置: 3是11b,GBPCON是两位控制一个I/O,控制第5个端口的是10、11位,所以11在0、1位,需要左移10位。 注意,改变GBPCON的需要改变的位,

2011-03-05 22:11:00 1319

原创 【原创】arm是如何运行裸机程序的?

肯定是上电后自动运行某个地址的指令,这个了解。   这里说的是:我们常用c写裸机程序,这个c程序放在哪了,arm如何找到这个c的。   其实下载到板子里的c程序每次还要下载一个汇编文件,这个汇编文件有什么作用呢? 是作为启动代码,是arm上电后第一部分要执行的代码,设置c语言运行的环境,设置寄存器,设置好后,就会跳转到main函数。 可以看到下图汇编程序(标记处跳到main的代码) important(用于同志编译器要使用的标号在其它的源文件中定义) 下面这句跳转到main函数

2011-03-05 15:21:00 2719

转载 野指针(居然有三种类型,貌似第二和三有些类似)

<br />野指针<br />定义“野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。成因野指针的成因主要有三种:  一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。  二、指针p被free或者delete之后,没有置为NULL,让人误以为p是

2011-03-05 10:05:00 1007

原创 书-收藏

<br />汇编语言 王爽

2011-03-03 16:16:00 552

国嵌视频讲义

国嵌视频讲义,上半部.下半部,有机会再传。国嵌的视频还是很好的,通俗易懂。

2011-12-09

空空如也

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

TA关注的人

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