- 博客(49)
- 资源 (2)
- 收藏
- 关注
转载 Linux per_cpu机制的详解[转]
针对IA64体系结构 在Linux操作系统中,特别是针对SMP或者NUMA架构的多CPU系统的时候,描述每个CPU的私有数据的时候,Linux操作系统提供了per_cpu机制。 per_cpu机制就是让每个CPU都有自己的私有数据段,便于保护与访问。 通过宏DEFINE_PER_CPU,定义这种私有数据,只不过这种私有数据放在特定的数据段中。 #define DEFIN
2012-05-02 11:18:18
533
转载 解压HTTP gzip的
解压HTTP gzip的 收藏 #include #include #include #include /* Compress data */int zcompress(Bytef *data, uLong ndata, Bytef *zdata, uLong *nzdata){ z_stream c_stream; int err = 0; if(data && ndata > 0) {
2010-05-05 00:24:00
2283
转载 zlib用法简单说明
zlib用法简单说明 收藏 本文的目的是: 简单说明如何把zlib加入到MFC程序中,提供内存压缩功能.1. 如何获得zlibzlib的主页是:http://www.zlib.net/2. 用VC++6.0打开把下载的源代码解压打开,VC6.0的工程已经建好了,在/projects/visualc6. 双击zlib.dsw, 可以在VC++6.0中看到里面有3个工程: zlib 是
2010-05-04 22:30:00
519
转载 PCB设计指南(7)过孔via
PCB设计指南(1)PCB板材料PCB设计指南(2)层叠PCB设计指南(3)爬电距离PCB设计指南(4)阻抗受控传输线PCB设计指南(5)参考平面PCB设计指南(6)布线PCB设计指南(7)过孔via Via(过孔) “过孔”通常指印刷电路板上的镀锡过孔。在许多应用中要求通孔足够大以适应直插元件的管脚,而在高速电路板主要用过孔来改变走线所
2010-04-15 11:07:00
4201
转载 PCB设计指南(6)布线
PCB设计指南(1)PCB板材料PCB设计指南(2)层叠PCB设计指南(3)爬电距离PCB设计指南(4)阻抗受控传输线PCB设计指南(5)参考平面PCB设计指南(6)布线PCB设计指南(7)过孔via 布线(Routing) 为了保持信号的完整性(signal integrity)和避免噪声的引入及降低电磁干扰(EMI),制定PCB的布线规则
2010-04-15 11:04:00
660
转载 PCB设计指南(5)参考平面
PCB设计指南(1)PCB板材料PCB设计指南(2)层叠PCB设计指南(3)爬电距离PCB设计指南(4)阻抗受控传输线PCB设计指南(5)参考平面PCB设计指南(6)布线PCB设计指南(7)过孔via 参考平面(Reference Planes)很多时候多层PCB板上要放置电源平面和地平面,而且要在高速信号放在TOP层,那么地平面(Groun
2010-04-15 11:01:00
2925
转载 PCB设计指南(4)阻抗受控传输线
PCB设计指南(1)PCB板材料PCB设计指南(2)层叠PCB设计指南(3)爬电距离PCB设计指南(4)阻抗受控传输线PCB设计指南(5)参考平面PCB设计指南(6)布线PCB设计指南(7)过孔via 阻抗受控传输线(controlled impedance transmission)受控阻抗传输线是特性阻抗Z0始终受控于其几何特性的走线。一
2010-04-15 10:57:00
1054
转载 PCB设计指南(3)爬电距离
PCB设计指南(1)PCB板材料PCB设计指南(2)层叠PCB设计指南(3)爬电距离PCB设计指南(4)阻抗受控传输线PCB设计指南(5)参考平面PCB设计指南(6)布线PCB设计指南(7)过孔via 爬电距离(Creepage Distance)两个导电部件之间,或一个导电部件与设备及易接触表面之间沿绝缘材料表面测量的最短空间距离。沿绝缘表
2010-04-15 10:47:00
2302
转载 PCB设计指南(2)层叠
PCB设计指南(2)层叠 PCB设计指南(1)PCB板材料PCB设计指南(2)层叠PCB设计指南(3)爬电距离PCB设计指南(4)阻抗受控传输线PCB设计指南(5)参考平面PCB设计指南(6)布线PCB设计指南(7)过孔via 层叠(Layer Stack)实现低电磁干扰(EMI)的PCB设计,这里推荐一个最少四层的设计实例(参见下图)
2010-04-15 10:44:00
676
转载 PCB设计指南(1)PCB板材料
说说数字隔离器:PCB设计指南 PCB设计指南(1)PCB板材料PCB设计指南(2)层叠PCB设计指南(3)爬电距离PCB设计指南(4)阻抗受控传输线PCB设计指南(5)参考平面PCB设计指南(6)布线PCB设计指南(7)过孔via 在这里虽然谈的是数字隔离器的PCB布板,但很多指导意见还是能用于其他高速电路里面的。本文主要
2010-04-15 10:31:00
1250
转载 GNU toolchain for ARM targe HOWTO
GNU toolchain for ARM targe HOWTO 收藏 2007-12-30 21:22现在是一头雾水,感觉看的东西太散了,决定系统的学习一下,先搞定手动建立交叉编译环境再说,正好找到了一篇The GNU toolchain for ARM targe HOWTO仔细看了一遍总算有点头绪了,好吧一步步来吧,1.建立了几个目录/usr/arm_tools/arm-linux/i
2010-04-14 23:46:00
2006
转载 构建ARM Linux交叉编译工具链
2.2 构建ARM Linux交叉编译工具链构建交叉编译器的第一个步骤就是确定目标平台。在GNU系统中,每个目标平台都有一个明确的格式,这些信息用于在构建过程中识别要使用的不同工具的正确版本。因此,当在一个特定目标机下运行GCC时,GCC便在目录路径中查找包含该目标规范的应用程序路径。GNU的目标规范格式为CPU-PLATFORM-OS。例如x86/i386 目标机名为i686-pc-lin
2010-04-14 00:34:00
951
转载 GNU Bison 中文手册
GNU Bison 中文手册 20050620 GNU Bison 中文手册翻译完成GNU Bison实际上是使用最广泛的Yacc-like分析器生成器,使用它可以生成解释器,编译器,协议实现等多种程序. 它不但与Yacc兼容还具有许多Yacc不具备的特性.这个手册编写十分完整,带你领略Bison在使用中的各个细节(注:并不是实现细节).如果发现错误,语句不通顺,意思不明,确请立即发邮件把
2010-04-13 21:53:00
4676
1
转载 上下拉电阻
上下拉电阻 上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!下拉同理! 上拉是对器件注入电流,下拉是输出电流;弱强只是上拉电阻的阻值不同,没有什么严格区分;对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。 上下拉电阻: 1、当TTL电路驱动COMS电路时,如果TTL
2010-04-13 20:34:00
463
转载 __asm__ __volatile__内嵌汇编用法简述
__asm__ __volatile__内嵌汇编用法简述 作者:刘洪涛,华清远见嵌入式培学院金牌讲师,ARM ATC授权培训讲师。__asm__ __volatile__内嵌汇编用法简述 在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__asm__ __volatile__内嵌汇编用法。因为我们华清远见教学平台是ARM体系结构的,所以下面的示例都是用ARM汇编。 带有C/
2010-04-13 01:03:00
380
转载 使用RealViewMDK时常见的问题(2)
使用RealViewMDK时常见的问题(2) 作者:赵明,华清远见嵌入式学院讲师。在你使用RealViewMDK下载程序的时候有遇到过类似于如下的错误信息吗?Load "D://david//project//farsight//LED_UART//obj//led_test.AXF" No Algorithm found for: 30000000H - 300041EFHEra
2010-04-13 00:59:00
522
1
原创 linux-2.6.26内核中ARM中断实现详解(3)
linux-2.6.26内核中ARM中断实现详解(3)作者:刘洪涛,华清远见嵌入式学院金牌讲师。四、中断处理模型 要想弄清楚desc->handle_irq(irq, desc)和我们注册的中断有什么关联,就要了解中断处理模型了。 4.1 中断处理模型结构 中断处理模型如下图所示, 其中NR_IRQS表示最大的中断号,在include/asm/arch/irq.h中定义。
2010-04-13 00:56:00
442
转载 linux-2.6.26内核中ARM中断实现详解(1)
linux-2.6.26内核中ARM中断实现详解(1) 作者:刘洪涛,华清远见嵌入式学院金牌讲师,ARM ATC授权培训讲师。看了一些网络上关于linux中断实现的文章,感觉有一些写的非常好,在这里首先感谢他们的无私付出,然后也想再补充自己对一些问题的理解。先从函数注册引出问题吧。一、中断注册方法在linux内核中用于申请中断的函数是request_irq(),函数原型在Kernel/
2010-04-13 00:53:00
427
转载 ARM Linux静态映射分析
ARM Linux静态映射分析作者:易松华,华清远见嵌入式学院讲师。在华清远见上课过程中,发现静态映射方面初学者比较难于掌握和理解,下面分析一下静态映射机制的原理并通过GPIO和USB、LCD等的静态映射作为例子来说明如何通过这种静态映射的方式访问外设资源。内核提供了一个重要的结构体struct machine_desc ,这个结构体在内核移植中起到相当重要的作用,内核通过machin
2010-04-13 00:49:00
470
转载 linux内核对S3C2410睡眠模式的支持
linux内核对S3C2410睡眠模式的支持一、S3C2410支持4种供电模式(1)NORMAL MODE耗电最大、可以通过关闭具体控制器的时钟来节电(2)SLOW MODE在此模式下可以没有内部PLL,耗电情况依赖于外部时钟的频率(3)IDLE MODEFCLK被关断,主要由于CPU core节电。可以任何通过外部中断唤醒(4)Power_OFF MODE除了
2010-04-13 00:41:00
412
转载 嵌入式Linux实战篇--交叉编译环境的建立(基于ubuntu 8.10)
嵌入式Linux实战篇--交叉编译环境的建立(基于ubuntu 8.10) 收藏 作者:华清远见讲师,曹忠明 在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。本文具体说明了嵌入式交叉编译环境的建立过程和具体的操作步骤,希望能够对各位朋友搭建对应的交叉编译环境有所帮助。 一、所需软硬件环境n 主机环境
2010-04-13 00:38:00
386
转载 使用RealViewMDK时常见的问题 access violation at 0xFFFFFFFC: no “write” permission
使用RealViewMDK时常见的问题 作者:华清远见讲师,赵明目前在市场上最常用的ARM编程工具无非是Real View MDK和IAR Embedded Workbench。我个人觉得,目前IAR是比较成熟、稳定、使用方便等优点,深受广大嵌入式开发者的喜爱。Real view MDK得到ARM公司的大力支持,功能很强,也逐步完善起来。 使用Real view(以下省略为RV)学
2010-04-13 00:35:00
3940
1
转载 如何让U-boot实现Nand/Nor 双启动
如何让U-boot实现Nand/Nor 双启动作者:曹忠明,华清远见嵌入式学院讲师。在做u-boot移植的时候,多数人使用的是Nand flash启动或Nar flash启动。这样u-boot就只能在Nand flash或Nor flash。那么我们如何让我们的u-boot在Nand flash或Nor flash都能使用。首先,我们说说u-boot,u-boot是系统启动的时候执行的
2010-04-13 00:23:00
406
转载 const在函数声明中的应用
const在函数声明中的应用作者:陶宁,华清远见嵌入式学院上海中心讲师。转载自:http://blog.youkuaiyun.com/farsight2009/archive/2010/04/09/5467114.aspx 1.在一个函数声明中,const 可以修饰函数的返回值,或某个参数;对于成员函数,还可以修饰是整个函数。有如下几种情况,以下会逐渐的说明用法: A& op
2010-04-13 00:11:00
307
转载 从dll导出lib
如何通过dll文件生成对应的lib文件(开发人员的一个小技巧) 如若转载,请尊重个人劳动,务必注明原始出处。iihero 2008-9-28于优快云转载自:http://blog.youkuaiyun.com/iihero/archive/2008/09/28/2990946.aspx 前几天,偶然从论坛里看到帖子,有人问:手头只有oci.dll文件,似乎对应的头文件也有。但是就是找不到对
2010-04-12 23:51:00
2331
转载 将ocx和DLL文件打包成cab文件,实现IE浏览器在线安装
我们打开淘宝等网站时,IE浏览器会提示安装空间,这个控件便是用于对用户名密码进行加密的ActiveX控件。如何在我们的站点上安装如此控件,让用户可以通过简单的点击便可方便使用我们的空间呢?下面是如何让在你的站点上安装控件的方法。 -------------------------------------------------------------------------------
2010-04-12 23:37:00
393
转载 init_waitqueue_head() -- 初始化等待队列头
init_completion() --> init_waitqueue_head()初始化等待队列头(wait_queue_head_t): 将wait_queue_head_t.task_list域中的两个指针指向其自身(wait_queue_head_t.task_list)-----------------------------------------------------------
2010-04-12 22:39:00
6225
转载 request_irq()、free_irq()
request_irq()、free_irq() 收藏 request_irq()、free_irq() 这是驱动程序申请中断和释放中断的调用。在include/linux/sched.h里声明。 request_irq()调用的定义: int request_irq(unsigned int irq, void (*handler)(int irq, void *dev_id, struct p
2010-04-12 22:34:00
784
转载 如何做一个成功的商人
如何做一个成功的商人 1.坚持看CCTV-1新闻联播 要想把握经济命脉,必须关注政局,新闻联播图文并茂,有声有色,着实为中国商人的最佳晴雨表;你可以不看财经报道,也可以不看焦点访谈,如果你不是做石油和外汇的,甚至你都可以不去管类似9.11事件和
2010-04-10 18:28:00
639
转载 编译boa出错解决办法
编译一个linux下的c系统,包含词法和语法分析模块,Linux上用bison和flex。 yacc是一个文法分析器的生成器,bison即是yacc的GNU版本.Lex和YACC是用于构造词法分析机和语法解释器的工具,利用Lex和YACC你可以轻松的构造一个语法解释器。 一开始make错误1:debian:/home/a/boa-0.94.13/src# makeyacc
2010-03-30 22:27:00
869
原创 current宏
尽管内核模块不象应用程序一样顺序执行, 内核做的大部分动作是代表一个特定进程的. 内核代码可以引用当前进程, 通过存取全局项 current, 它在 中定义, 它产生一个指针指向结构 task_struct, 在 定义. current 指针指向当前在运行的进程. 在一个系统调用执行期间, 例如 open 或者 read, 当前进程是发出调用的进程. 内核代码可以通过使用 current 来使
2010-03-28 22:38:00
378
转载 task_struct 数据结构
在linux 中每一个进程都由task_struct 数据结构来定义. task_struct就是我们通常所说的PCB.她是对进程控制的唯一手段也是最有效的手段. 当我们调用fork() 时, 系统会为我们产生一个task_struct结构。然后从父进程,那里继承一些数据, 并把新的进程插入到进程树中, 以待进行进程管理。因此了解task_struct的结构对于我们理解任务调度(在linux 中任
2010-03-28 22:30:00
438
转载 交叉编译Linux内核(2.6.22.6)
动手编译内核之前,至少应该看看源码根目录下的README文件,并参考一些其他的资料,了解编译一个内核所需要的基本条件和环境,以及基本的步骤。我使用的交叉编译器是arm-iwmmxt-linux-gnueabi-gcc(4.2.1),选用的内核版本是Linux-2.6.22.6。以下操作均以普通用户身份进行:(1)make mrproper编译之前检查内核源码树是否“纯净”(clean)
2010-03-27 19:39:00
417
原创 proc操作函数
1、create_proc_entry 函数 在 /proc 文件系统中创建一个虚拟文件。这个函数可以接收一个文件名、一组权限和这个文件在 /proc 文件系统中出现的位置。create_proc_entry 的返回值是一个 proc_dir_entry 指针(或者为 NULL,说明在 create 时发生了错误)。然后就可以使用这个返回的指针来配置这个虚拟文件的其他参数,例如在对
2010-03-26 23:14:00
895
转载 proc的操作
揭开Linux Proc文件系统的神秘面纱 【摘要】本文介绍了Linux proc文件系统的一些细节。首先介绍了proc文件系统的基本概念/存储位置/读取时机/加载方式,接着介绍了如何利用proc文件系统读取系统/内核中的各种信息以及进程相关的各种信息,分析了各个文件的作用及可能对应的系统调用命令等。最后介绍了驱动程序及内核模块如何利用proc 文件系统向用户空间提供调试接口输出调试信息。
2010-03-26 22:38:00
431
转载 vivi minicom烧写超时
vivi minicom 烧写内核 load flash kernel x 终结版-----王全安 --09.8.31 bootloader vivi 配置编译好了后用Jflash烧进板子这一步比较简单按照文档上说的做就行 我一遍就成功了 这是我没想到的 所以在这里就不详写了 主要说下vivi烧写kernel的过程这一步弄了一天多的时间才搞定 首先声明下 我用的是minicon烧写的而不是
2010-03-25 21:42:00
1429
原创 linux设备驱动学习2(并发控制)
1、中断屏蔽 2、原子操作 整型原子操作 结构体:atomic_t 函数:atomic_set(),atomic_read(),atomic_add,atomic_sub,atomic_inc,atomic_dec,…… 位原子操作 函数:set_bit(),clear_bit
2010-03-23 22:46:00
336
原创 Linux系统下信号量的用法
(1)信号量的初始化有以下几种方式。 1.void sema_init (struct semaphore *sem, int val); 该函用于数初始化设置信号量的初值,它设置信号量sem的值为val。 2.DECLARE_MUTEX(name) 该宏声明一个信号量name并初始化它的值为0,即声明一个互斥锁。 3.D
2010-03-21 20:42:00
462
原创 linux设备驱动学习1(简单框架)
http://www.embeddedlinux.org.cn/ (不错的网站) 1、注册设备编号 使用register_chardev_region或alloc_chrdev_region(2.6内核最好使用此函数)。 2、注册设备 (1)使用struct cdev结构体,如果此结构体包含在自定义结构体中,可以通过函数container_of获得。
2010-03-21 16:33:00
403
转载 file_operations下函数详解
注释基于kernel 2.6.15 struct file_operations{ struct module *owner; // 指向拥有该结构的模块的指针,避免正在操作时被卸载,一般为初始化为THIS_MODULES loff_t (*llseek) (struct file *, loff_t, int); // llseek用来修改文件当前的读写位置,返回新位置 //
2010-03-20 13:50:00
536
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人