自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(44)
  • 收藏
  • 关注

原创 linux内核裁剪,编译,移植---目标板FS2410----未完成

现在21:20,争取今天把内核烧进去,应该不难吧。。。。。先看看内核的裁剪与编译。 基本步骤:1.建立交叉编译环境,这步在之前已经完成,使用交叉编译工具链:arm-linux-gcc-4.4.3.tar.gz2.修改Makefile,这一步查看资料,写着:修改内核目录树根下的Makefile时,可先指明交叉编译器。设计时,可向Makefile中添加如下内容:    AR

2012-11-17 16:43:09 1956

原创 uboot烧写完成后时代

前边只是整理了下思路,基本就弄明白了一件事,就是,jlink是烧uboot的,少了uboot才能使用串口,才能下载内核,现在的整理方向,就是下载内核。同样有两个问题:1,uboot下载内核的命令问题,包括哪个命令和下载地址。2,内核的移植问题,第二个是大问题。第一个问题:下载内核工作。printenv,查看当前设置的环境  setenv,设置当前环境   保存之前的设置,saveenv

2012-11-06 21:08:28 1239

原创 2012.11.4随笔--拿到一块开发板准备开始linux的学习时,思路的整理工作。

自学总是断断续续,现在又是一个新的开始,先整理一下思路手上有一块s3c2410的板子,打算利用这块板子来进行嵌入式的学习,吸取前边只重理论轻时间的学习方法,这次学习要多动手,写代码,调试代码。首先要做的事情,先把linux的环境在板子上跑起来。包括内容都有哪些呢? 学了这么长时间了,竟然连打个环境都不会。。。。可见实践经验多么少。。 手上硬件资源:开发板2410一块,J-L

2012-11-04 20:18:54 1365

转载 搭建开发环境------常用uboot命令

常用uboot命令介绍Printenv 打印环境变量。Uboot> printenvbaudrate=115200ipaddr=192.168.1.1ethaddr=12:34:56:78:9A:BCserverip=192.168.1.5Environment size: 80/8188 bytesSetenv 设置新的变量Uboot> seten

2012-06-03 20:27:30 789

转载 搭建开发环境----安装tftp

1.虚拟机安装ubuntu,选择NAT方式连网,使用sudo apt-get install tftpd-hpa(服务器端),tftp-hpa(客户端)安装tftpUbuntu 10.10下安装TFTP的步骤 tftp-hpa版本【背景】由于想要在tq2440板子上用tftp下载kernel,所以要在自己的PC机的Ubuntu 10.10上安装tftp服务。所以就去网上找了些教程,但是很悲剧,

2012-06-03 20:25:27 2104

原创 uboot 启动流程

start.s设置CPU工作模式->关闭看门狗->关闭中断->设置时钟频率->(初始化flash ->关闭mmu->关闭cache->)将uboot从flash拷贝到sdram->设置堆栈->设置bss->进入borad.c board.c初始化环境变量参数->初始化显存->获取IP地址,MAC地址->硬件设备的初始化()->初始化串口->启用中断->初始化网卡->进去命令循环(即

2012-02-08 23:01:48 646

转载 GDB调试精粹及使用实例

来源:不详 (2006-07-14 11:18:05)一:列文件清单 1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符()和外壳通配符(*、?、[、])在内。 如果你使用不带参数的run命令,gdb就再次使用你给

2012-02-01 16:07:31 497

转载 进程与线程的区别(转)

进程与线程的区别(转)Posted on 2007-02-06 23:06 BPM 阅读(11677)评论(1)  编辑收藏 线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;(2)资源拥有:进程是资源分配和拥有的单位,同一个进

2012-02-01 15:41:18 570

转载 可重入和不可重入

可重入和不可重入Posted on 2009-07-05 12:00 Prayer 阅读(326)评论(0)  编辑 收藏引用 所属分类:C/C++ 、LINUX/UNIX/AIX 这种情况出现在多任务系统当中,在任务执行期间捕捉到信号并对其进行处理时,进程正在执行的指令序列就被信号处理程序临时中断。如果从信号处理程序返回,则继续执行进程断点处的正常指令序列,从重新

2012-02-01 14:09:25 954

转载 linux驱动开发流程

嵌入式linux驱动开发流程嵌入式系统中,操作系统是通过各种驱动程序来驾驭硬件设备的。设备驱动程序是操作系统内核和硬件设备之间的接口,它为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,可以像操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,完成以下功能:◇ 驱动程序的注册和注销。◇ 设备的打开和释放。◇ 设备的读写操作。◇ 设备的控制操作

2012-01-31 10:09:58 19003 2

转载 ubuntu内核源码树的建立

ubuntu内核源码树的建立2010-05-27 16:26开始读的时候,一而再的看见要创建自己的内核源码树.起初并不是很明白源码树是什么,经过网上的搜寻,找了点概念,其实应该很形象,树的形式就是主干,树枝,树叶,都是一层一层的,逻辑性比较强,所以,明白了吧,就是内核的逻辑形式.(当然这是网络上看到的).感谢大家的无私奉献.现在开始记下我建立的过程,及自己的想法1.

2012-01-17 19:57:40 2493

原创 uboot-----borad.c

程序流程:start_armboot,进入bord.c, init_fnc_t **init_fnc_ptr;char *s; typedef int (init_fnc_t) (void); #ifndef CFG_NO_FLASHulong size;#endif#if defined(CONFIG

2012-01-09 13:37:04 1691

转载 总线技术介绍

任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。为了简化硬件电路设计、简化系统结构,常用一组线路,配置以适当的接口电路,与各部件和外围设备连接,这组共用的连接线路被称为总线。采用总线结构便于部件和设备的扩充,尤其制定了统一的总线标准则容易使不同设备间实现互连。----微机中总线一般有内部

2012-01-09 10:08:17 1038

转载 nor flash 和nand flash 的区别

ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。           RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是

2012-01-09 10:06:19 687

原创 归去来兮辞

归去来兮,田园将芜胡不归?既自以心为形役,奚惆怅而独悲!悟以往之不谏,知来者之可追。实迷途其未远,觉今是而昨非。舟摇摇以轻扬,风飘飘而吹衣。问征夫以前路,恨晨光之熹微。乃瞻衡宇,载欣载奔。童仆欢迎,稚子候门。三径就荒,松菊尤存。携幼入室,有酒盈樽。引壶殇以自酌,眄停柯以怡颜,倚南窗以寄傲,审容膝之易安。园日涉以成趣,门虽设而常关。策扶老以流憩,时娇首而暇观,云无心以出岫,鸟倦飞而知还。景醫翳以将入

2012-01-06 18:31:47 826

原创 start.s

uboot 启动流程: 设置cpu--》关闭看门狗--》屏蔽中断--》设置时钟频率--》设置堆栈--》清除bss段--》 设置cpu为svc32模式: mrs r0,cpsr    //mrs:将cpsr中的内容读进r0中bic r0,r0,#0x1f   //bic:bit clear,位清除命令,将r0与0x1f的

2012-01-06 18:24:03 647

转载 const参数,const返回值与const函数

const参数,const返回值与const函数  2010-04-10 12:07:16|  分类:默认分类 |  标签:|字号大中小订阅        在C++程序中,经常用const 来限制对一个对象的操作,例如,将一个变量定义为const 的:const  int  n=3;则这个变量的值不能被修改,即不能对变量赋值。

2011-12-23 10:06:48 2361

转载 嵌入式linux面试题

基础试题(C语言) 一、ANSI C/C++方面的知识 一.1、简答题。下面的题目必须全部答对才给分(20分): 1、 如何在C中初始化一个字符数组。 2、 如何在C中为一个数组分配空间。 3、 如何初始化一个指针数组。 4、 如何定义一个有10个元素的整数型指针数组。 5、 s[10]的另外一种表达方式是什么。 6、 GCC3.2.2版本中支持哪几种编程语言。

2011-11-05 15:29:11 5534

转载 c面试题

1) 设x,y均为整型变量,且x=10 y=3,则以下C语言的输出结果是()。(选择一项)printf(“%d,%d\n”,x–,–y);a) 10,3b) 9,3c) 9,2d) 10,22) 在C语言中,要计算一个数(变量i)的开平方,下面代码正确的是()。(选择一项)a) printf(sqrt(t), “\n Square of%d”,i)b) printf

2011-10-24 15:24:05 3021

原创 华为嵌入式面试题

(1)什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。(2)char * const p      char c

2011-10-17 08:16:13 16572

原创 关于对驱动的一些理解

什么是驱动程序?听到这个问题,脑中的第一反映就是:驱动就是让硬件跑起来的软件。但是不知到这么理解是否到位。所以找到LDD3中对驱动程序的解释:驱动程序就是一个个的黑盒子,使某个特定硬件响应一个定义良好的内部编程接口,这些接口完全隐藏了设备的工作细节。用户的操作通过一组标准

2011-10-13 09:26:52 1572

原创 C学习随笔

1.数据类型的长度是由谁决定的?首先与CPU有关,其次与编译系统和适用平台也有关。最直接的使用,长度有编译系统决定。而不是有操作系统决定。2.32位机32位机类型最小范围char0~127signed char

2011-09-30 14:07:39 922

原创 多维数组

1.数组名不同于一维数组的数组名表示第一个元素的地址,是一个“指向元素类型的指针”,多维数组第一维的元素实际上是另一个数组。2.下标int matrix[3][10];1)matrix[1][5]: 第一列第五行元素2)matrix:指向包含十

2011-09-30 14:02:27 508

原创 哈希表

转帖]什么叫哈希表(Hash Table)什么是哈希表?也叫散列表,是一个根据关键码值直接进行访问的数据结构,也就是说,它通过把一个关键码值映射到表中一个位置来访问记录,以加快查找速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。数据结

2011-09-30 08:44:27 610

原创 Const,Const函数,Const变量,函数后面的Const (zz)

=========================引==================================Const,Const函数,Const变量,函数后面的Const (zz)关键字:Const,Const函数,Const变量,函数后面的Cons

2011-09-28 15:56:48 371

原创 链接属性 存储类型

链接属性当组成一个程序的各个源文件分别被编译后,所有的目标文件以及那些从一个或多个函数库中引用的函数链接在一起,形成可执行程序。externalextern可在源文件之外访问internalstatic只可在代码块内部或是函数内

2011-09-23 11:35:36 580

原创 VirtualBox虚拟机安装Windows XP

Ubuntu:VirtualBox虚拟机安装Windows XP2011-03-15 14:58:45标签:ubuntuvboxWindows xp 虚拟机 文件共享原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否

2011-09-10 22:33:38 1574

原创 ubuntu更新

1.sudo cp /etc/apt/source.list/etc/apt/source.list.backup //备份源列表2.sudo gedit /etc/apt/sources.list//更新源文件3.sudo apt-get update //更新源4

2011-09-05 14:03:40 541

原创 linux设备驱动学习(11) linux设备模型3

3. 内核对象机制主要相关函数针对内核对象不同层次的数据结构,linux 2.6内核定义了一系列操作函数,定义于lib/kobject.c文件中。3.1 kobject相关函数void kobject_init(struct kobject * kobj);kob

2011-09-02 10:48:34 519

原创 linux设备驱动学习(11) linux设备模型2

------------------------------引------------------------------  Linux 2.6内核的一个重要特色是提供了统一的内核设备模型。随着技术的不断进步,系统的拓扑结构越来越复杂,对智能电源管理、热插拔以及plug

2011-09-02 10:48:05 673

原创 linux常用知识

@http://hi.baidu.com/csdeny/blog/item/119aaefd73bf551708244d7f.html 写得蛮好的linux学习笔记2007-05-05 00:18 linux目录架构/    根目录/b

2011-09-02 10:33:14 525

原创 linux设备驱动学习(11) linux设备模型1

引自http://blog.chinaunix.net/space.php?uid=20543672&do=blog&id=94312  以《LDD3》的说法:Linux设备模型这部分内容可以认为是高级教材,对于多数程序作者来说是不必要的。但是我个人认为:对于一个嵌入式L

2011-09-02 08:13:11 778

原创 linux设备驱动程序学习(10) 中断处理

尽管有些设备仅仅通过控制其寄存器就可以得到控制,但现实中的大部分设备却要比这复杂一些。因为大部分设备的处理时间与处理器不在同一个周期,且一定会比处理器慢的多,这就造成了一种让处理器等待设备的现象,显然这是不行的,而有一种解决方法就是中断操作。中断仅仅就是一个信号,当硬件需要获

2011-08-29 16:05:10 1603

原创 softirq,tasklet,workqueue

-------------------------------------------------------------------------引------------------------------------------------------------------

2011-08-29 15:34:03 645

原创 linux设备驱动程序学习(9) 与硬件通信

I/O端口 VS I/O内存知识点:1.每种外设都是通过读写寄存器进行控制。2.在硬件层,内存区域和I/O区域没有概念上的区别:他们都通过像地址总线和控制总线发送电平信号进行访问,在通过数据总线读写数据。3.

2011-08-27 17:58:49 1119

原创 linux设备驱动程序学习(8) 分配内存

kmalloc函数#includevoid *kmalloc(size_t size,int flags);1.不会对所申请的内存清零,保留原有数据2.参数:size:分配大小                flags:km

2011-08-26 16:20:14 795

原创 linux设备驱动程序学习(7) tasklet,工作队列,共享队列

tasklettasklet  vs  内核定时器相同:始终在中断期间运行,始终会在调度他们的同一CPU上运行,而且都接收一个unsigned long参数不同:不可以要求tasklet在某一给定的时间执行tasklet对中断处理例程来说尤其有用。中断处理例程必须

2011-08-26 10:00:25 1172

原创 linux设备驱动程序学习(7) 时间、延迟及延缓操作

度量时间差概念:时钟中断:由系统定时硬件以周期性的间隔产生hz:上述间隔由hz的值设定,hz是一个与体系结构相关的常数计数器:发生中断一次,计数器加一,这个计数器的值(只有)在系统引导时被初始化为0jiffies变量:unsigned long 型变量,要么与

2011-08-25 14:06:55 1521

原创 linux设备驱动学习(6) 高级字符驱动学习--阻塞型I/0

提出问题:若驱动程序无法立即满足请求,该如何响应? 比如:当数据不可用时调用read,或是在缓冲区已满时,调用write解决问题:驱动程序应该(默认)该阻塞进程,将其置入休眠状态直到请求可继续。 休眠:当一个进程被置入休眠时,它会被标记为一种特殊状态并从调度器运行

2011-08-24 15:05:23 914

原创 linux设备驱动学习(5) 高级字符驱动程序操作--ioctl

ioctl驱动程序可以使用ioctl执行硬件控制。两种原型:1.在用户空间int ioctl(int fd,unsigned long cmd,...);fd:文件描述符cmd:控制命令,,,:可选参数:插入*argp,具体内容依赖于cmd2.驱动

2011-08-22 13:41:56 1118

空空如也

空空如也

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

TA关注的人

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