- 博客(134)
- 资源 (14)
- 收藏
- 关注
原创 QT中PRO文件写法的详细介绍,很有用,很重要!
在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下: 1. 注释从“#”开始,到这一行结束。 2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = appA> app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指
2013-11-22 15:38:39
757
原创 嵌入式系统Linux内核开发工程师必须掌握的三十道题
如果你能正确回答以下问题并理解相关知识点原理,那么你就可以算得上是基本合格的Linux内核开发工程师,试试看!1) Linux中主要有哪几种内核锁?2) Linux中的用户模式和内核模式是什么含意?3) 怎样申请大块内核内存?4) 用户进程间通信主要哪几种方式?5) 通过伙伴系统申请内核内存的函数有哪些?6) 通过slab分配器申请内核内
2013-11-22 15:38:37
702
原创 allegro给批量via加上gnd 的net属性的方法
方法一: 1。铺上死铜。 2。死铜加gnd net属性 3。将死铜变更为活铜 方法二: 直接复制Via往动态铜GND网络上一放就可以 或者Move Via到动态铜GND网络 要想单独拉出来一个GND网络属性的via 也可以复制Via,选中Retain net of via也可以了 管理员在2009年8月13日编辑了该文章文章。
2013-11-22 15:38:34
3183
原创 ALLEGRO 问题累积
Q: Allegra中颜色设置好以后,应该可以导出相关设置文件,下次碰到不同设置 的板子,看着难受就可以直接读入自己的文件改变设置了 A:16.2版本的可以这样做:file->export->parameters, 选中颜色就行了,其它的参数一样可以保存。 Q:ALLEGRO 自动布线后,为直角.如何调整成45度角走线 A: ROUTE –GLOSS—PARAMETERS—CONVERT C
2013-11-22 15:38:32
4377
原创 allegro拼板(同一块电路板)
allegroPCB在布线的时候,有时候为了方便制版,需要拼板。我们可以利用复制命令复制电路板并放置,如下图。在放置的时候,最好使用命令窗口输入坐标值,来选择参考点坐标和定位坐标。不然,在对齐丝印层的时候会产生偏差。但是新复制的电路元器件标号都出现*,就是丝印层有问题,接下来看看如何修改。将上面的拼板生成gerber文件然后新建一个test.brd文件,按照下图操作,增加一个子层。然后导入上面生成
2013-11-22 15:38:28
6375
原创 allegro PCB拼板(不同电路板)
上一篇文章说了一下同一块板子的拼板,趁热打铁,下面也说说不同板子的拼板。这是新的一块板子,不同于上一篇文章的PCB板子,现在我们要把它们拼到一块PCB中去,这个方法对大家很有用的,可以省掉一些制版的费用,如果你的资金充足,可以不考虑这个。按照下面图片操作,创建新PCB的一个模块,以便在上一篇文章提到的PCB中调用。这里要做好选择,红圈表示的地方,也有参考点坐标,我选择板子左下角。最好在命令窗口输入
2013-11-22 15:38:26
3886
原创 fedora18 init3模式下,startx进入纯英文界面,输入中文的方法
这是一篇篇幅不长的文章。说说,fedora18 init3模式下,startx进入纯英文界面,输入中文的方法。要说明的是,对于linux这是一个通用方法。而不仅仅局限于fedora。 既然,startx是启动X界面的入口,那么就要看看startx到底是什么了。 $ which startx /bin/sta
2013-11-22 15:38:24
766
原创 fedora18默认进入init3(字符界面)的方法
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target 管理员在2009年8月13日编辑了该文章文章。 --> -->
2013-11-22 15:38:21
713
原创 移植java虚拟机CVM到ARM平台
移植java虚拟机CVM到ARM平台 J2ME CDC(Connected Device Configuration,连接式设备配置集)使用CVM,面向那些具有更强计算能力的嵌入式设备,包含了Java类库的核心部分,是应用Java技术在嵌入式设备上进行开发所需类库的最小集合。它具有如下优点:高级网络特性:CDC位基于套接字的网络编程技术提供了最新Java API满足Jini技术的需求:基于CDC
2013-11-22 15:38:19
727
原创 嵌入式web服务器boa的编译移植
Linux下Boa服务器移植,交叉编译boa并成功移植到FL2440开发板上,并且CGI程序运行正常。主机环境:redhat9交叉编译器:arm-linux-gcc 3.4.1BOA版本:0.94.13平台:s3c2440一:下载源码:从http://www.boa.org/官方网站下载源码,并将源码放置在/src 目录下。[root@ EmbedSky ~]# cd /usr/src
2013-11-22 15:38:17
3309
原创 Linux使用高压缩率的lzma和xz
gnu tar的1.26版本开始支持lzma和xz压缩,具体压缩实例如下压缩tar -c --xz -f my_archive.tar.xz /some_directory # results in my_archive.tar.xztar -c --lzma -f my_archive.tar.lzma /some_directory # results in my_arch
2013-11-22 15:38:15
1106
原创 友善SD卡烧写工具(SD-Flasher)替代解决方案
最近入手了一块mini210s的开发板,自带android,但是我想用纯linux啊.按说明书用友善给的SD-Flasher.exe烧Superboot210.bin,没一次成功!我SD卡有问题???后来看了liukun321的博客发现其实可以通过linux的dd命令来烧写友善的Superboot210.bin。果然成功前提: 1、SD卡 2、linux系统,装虚拟机中就行。步骤:
2013-11-22 15:38:13
2229
1
原创 无线网卡移植
1、准备好hostap、pcmcia-cs及wireless_tools驱动hostap驱动可从http://hostap.epitest.fi/下载最新版hostap-driver-0.4.9.tar.gz解压到自己的目录底下tar zxvf hostap-driver-0.4.9.tar.gz 需要把此驱动补丁打进内核里。进入linux内核目录cd linux-2.6.9运行补丁命令:patc
2013-11-22 15:38:10
972
原创 通过GUID获取pid,vid
//------------------------------------------------------------------->#include #include #include #include #include #include #include #include #include #pragma comment (lib, "Setupapi.lib")////////////
2013-11-22 15:38:08
2212
原创 深度分析NandFlash—控制器参数TACLS、TWRPH0和TWRPH1的确定(以TQ2440开发板上的K9F2G08U0A为例)
这三个参数对于NandFlash的读写操作来说是比较重要的,没搞清楚这三个参数,后面的事就不用提了,那这三个参数到底是干什么的呢,我们怎么样去配置他们呢,今天我花了点时间研究了一下这三个参数。在datasheet中对他们的时序有下面两种图示,一种是写命令或者地址的情况,一种是读写数据的情况: 由上图可知,这三个参数控制的是Nand Flash 信号线CLE/ALE与写控制信号
2013-11-22 15:38:06
1085
原创 Git版本控制使用方法入门教程
考虑到CVS的一些局限性,最近和同事在公司推行Git。 其实,如果推行SVN的化,可能推行的难度会降低很多。不过lark说既然推行一个新的版本管理工具,总要花费一定的时间进行培训、部署、转换。而推行Git和SVN的代价不如想象中差距那么大。因此,不如就多花些精力推行Git, 可以带来更多的好处。 这个想法说服了我。 然后就开始筹备了。我发现网上很多git教程对一些基础命令(比如g
2013-11-22 15:38:04
660
原创 [开发环境] 构建嵌入式 Linux 开发环境 V0.1
基于 linux-3.0.3、binutils-2.21.1、glibc-2.13、glibc-ports-2.13、gcc-4.6.1、gmp-5.0.2、mpfr-3.0.1、mpc-0.9 构建。1.创建宿主机编译环境# apt-get install build-essential libncurses5-dev创建setbuildenv.sh脚本setbuilde
2013-11-22 15:37:59
816
1
原创 Linux USB驱动框架分析
Linux USB驱动框架分析(一) 事实上,Linux的设备驱动都遵循一个惯例——表征驱动程序的结构体,结构体里面应该包含了驱动程序所需要的所有资源。用术语来说,就是这个驱动器对象所拥有的属性及成员。这个结构体的名字由驱动开发人员决定,比如说,鼠标可能有一个叫做mouse_dev的struct,键盘可能由一个keyboard_dev的struct。而这次我们来分析一下Linux内核源码中的
2013-11-22 15:37:57
694
原创 linux NandFlash driver 超详细分析
今天学习了NandFlash的驱动,硬件操作非常简单,就是这个linux下的驱动比较复杂,主要还是MTD层的问题,用了一下午时间整理出来一份详细的分析,只是分析函数结构和调用关系,具体代码实现就不看了,里面有N个结构体,搞得我头大。 我用linux2.6.25内核,2440板子,先从启动信息入手。内核启动信息,NAND部分:S3C24XX NAND Driver, (c) 2004
2013-11-22 15:37:54
3832
原创 Nand ECC校验和纠错 详解(转)
ECC的全称是Error Checking and Correction,是一种用于Nand的差错检测和修正算法。如果操作时序和电路稳定性不存在问题的话,NAND Flash出错的时候一般不会造成整个Block或是Page不能读取或是全部出错,而是整个Page(例如512Bytes)中只有一个或几个bit出错。ECC能纠正1个比特错误和检测2个比特错误,而且计算速度很快,但对1比特以上的错误无法纠
2013-11-22 15:37:52
5230
原创 无libc库的printf实现代码
static char log_buf[1024];static char store[20];int pos = 0;char *itoa(int num, char *str, int radix) ;char *itoa(int num, char *str, int radix) { char string[] = "0123456789abcdefghijklmnopqrstuvw
2013-11-22 15:37:50
681
原创 fedora16 最小安装注意
一、网络起不来 1、打通网络 ifconfig eth0 192.168.0.6 #设置IP route add default gw 192.168.0.1 #设置网关 vi /etc/resolv.conf 输入:210.21.196.6 2、开机启动网络 yum install
2013-11-22 15:37:48
608
原创 一段求平方根的代码
有人在Quake III的源代码里面发现这么一段用来求平方根的代码:/*================SquareRootFloat================*/float SquareRootFloat(float number) { long i; float x, y; const float f = 1.5F; x = number * 0.5F;
2013-11-22 15:37:45
1466
原创 编写跨平台程序的关键,C/C++中的内置宏定义
分两部分:操作系统判定:Windows: WIN32Linux: linuxSolaris: __sun编译器判定:VC: _MSC_VERGCC/G++: __GNUC__SunCC: __SUNPRO_C和__SUNPRO_CC转载自:http://blog.csdn.net/avagrant158/article/details/6298
2013-11-22 15:37:43
959
原创 DMA模式
DMA模式 DMA的英文拼写是“Direct MemoryAccess”,汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式。PIO模式下硬盘和内存之间的数据传输是由CPU来控制的;而在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数的传送,数据传送完毕再
2013-11-22 15:37:41
617
原创 S3C2410 DMA原理与实例(23M)
1. DMA的含义:Direct Memory Acess ,可以不通过CPU而在DMA控制器的控制下,高速地和I/O设备和存储器之间交换数 据。 2.S3C2410A支持4通道DMA,在以下四种情况可运行 ① 源设备和目标都在系统总线AHB上 ② 源设备和目标都在外围总线APB上 ③ 源设备在系统总线,而目标设备位于外围总线④ 源设备
2013-11-22 15:37:39
768
原创 S3C2410 DMA详解
之所以要介绍S3C2410 DMA,因为它对性能太重要了!只有活用了DMA,CPU的性能才能上去!S3C2410有四个DMA,每个DMA支持工作方式基本相同,但支持的source Dest可能略有不同,具体见Datasheet。 这里具体DMA CONTROL寄存器(DCON)的配置说明,进而引出DMA的各种工作方式。Atomic transfer:指的是DMA的单次原子操作,它
2013-11-22 15:37:36
834
原创 S3C2410下DMA的使用
DMA优点是其进行数据传输时不需要CPU的干涉,可以大大提高CPU的工作效率。DMA大容量数据传输中非常重要,比如图像数据传输,SD卡数据传输,USB数据传输等等。S3C2410有四个DMA,每个DMA支持工作方式基本相同,但支持的source Dest可能略有不同。那么怎么使用DMA呢,S3C2410内部集成了DMA控制器,我们只需要简单的配置一下寄存器就可以实现DMA的传输了。
2013-11-22 15:37:32
800
原创 共享内存---shmget shmat shmdt
要使用共享内存,应该有如下步骤:1.开辟一块共享内存 shmget()2.允许本进程使用共某块共享内存 shmat()3.写入/读出4.禁止本进程使用这块共享内存 shmdt()5.删除这块共享内存 shmctl()或者命令行下ipcrmftok()。它有两个参数,一个是字符串,一个是字符。字符串一般用当前进程的程序名,字符一般用来标记这个标识符所标识的共享内存是这个进程所开辟的第几个共享内存
2013-11-22 15:37:29
567
原创 linux shm 进程之间内存共享
进程之间内存共享实例代码如下:服务器端: 点击(此处)折叠或打开#include stdio.h>#include stdlib.h>#include unistd.h>#include sys/types.h>#include sys/ipc.h>#include sys/shm.h>#define SHM_SIZE 26int main(int argc,char* argv[]){
2013-11-22 15:37:25
1035
原创 QT 关闭程序时"Segmentation fault"
最近在s3c2440上移植了qt4.7.4,程序是可以跑了,但在关闭时总是出现"Segmentation fault",此后运行程序的终端就不再响应。怎么办呢???什么原因呢???这么大个工程编译一次就要半个小时,不好调试阿!!头晕 n天之后的今天的昨天,我用strace追踪了下,命令如下: strace -f -F -o strace.log mainwindow -qws
2013-11-22 15:37:23
878
原创 gdb调试
set print null-stop #print命令显示字符串时遇到'\0'就结束如果打开了这个选项,那么当显示字符串时,遇到结束符则停止显示。这个选项默认为off。n #单步跳过s #单步进入p /x j #用16进制显示变量j的值b main #在当前源文件的函数main开始处设置断点b 222 #在当前源文件的222行设置断点set args aa #设置程序启
2013-11-22 15:37:21
416
原创 嵌入式ssh实现
一、编译1、下载软件包http://matt.ucc.asn.au/dropbear/dropbear.htmldropbear-2012.55.tar.bz22、配置编译环境变量export PREFIX=/develop/ssh3、编译tar xvfj dropbear-2012.55.tar.bz2./configure --host=arm-linux --prefix=$PREFIX -
2013-11-22 15:37:18
669
原创 Linux & Android 多点触摸协议
为了使用功能强大的多点触控设备,就需要一种方案去上报用户层所需的详细的手指触摸数据。这个文档所描述的多点触控协议可以让内核驱动程序向用户层上报任意多指的数据信息。使用说明 单点触摸信息是以ABS承载并按一定顺序发送,如BTN_TOUCH、ABS_X、ABS_Y、SYNC。而多点触摸信息则是以ABS_MT承载并按一定顺序发送,如ABS_MT_POSITION_X、ABS_MT_POSITION_Y
2013-11-22 15:37:16
543
原创 u-boot启动完全分析
1.1 U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下:(1)第一阶段的功能Ø 硬件设备初始化Ø 加载U-Boot第二阶段代码到RAM空间Ø 设置好栈Ø 跳转到第二阶段代码入口(2)第二阶段的功能Ø 初始化本阶段使用的硬件设备Ø 检测系统内存映射Ø 将内核从Flash读取到RAM中Ø 为内核设置启动参数Ø 调
2013-11-22 15:37:14
596
原创 交叉编译Makefile文件
以上是利用arm-linux-gcc进行交叉编译的Makefile配置文件的内容。tcp_server是根据需要进行改变的内容。 管理员在2009年8月13日编辑了该文章文章。 --> -->
2013-11-22 15:37:11
841
原创 linux input子系统键盘驱动实现
问: 为何要基于input子系统??答: 因为linux下所有GUI都可以接收input子系统的消息。写基于GUI的程序时可以用GUI实现的按键机制,而不是单片机的思维,一个死循环来处理用户输入。不扯淡了,一切尽在源码中!硬件平台: s3c2440软件平台: linux-3.1.6 + qt-4.7.4此驱动源码以GPL协议开放. 点击(此处)折叠或打开#inclu
2013-11-22 15:37:09
942
1
原创 linux驱动,中断中关闭中断
根据计划,本来上个星期就要完成键盘驱动,但是延期了。某天心血来潮决定当晚完成键盘驱动!刷刷代码写完。一调试,我考,系统都死了,问题有点严重。具体现象如下:键盘按键按下,对应中断脚就一直低电平,而且系统也死了。我考,同样的键盘板,我曾经在linux-2.6.26内核通过中断方式实现了。这怎么就罢 工了呢?硬件电路不一样???还是.....奋战到凌晨,实在顶不住了。睡觉去了。 接下来的几天,公司
2013-11-22 15:37:06
3004
原创 关于中断处理程序中的关中断函数disable_irq和disable_irq_nosync
2010年7月20日19:18:30 关于中断处理程序中的关中断函数disable_irq和disable_irq_nosync disable_irq关闭中断并等待中断处理完后返回, 而disable_irq_nosync立即返回. 那么在中断处理程序中应该使用哪一个函数来关闭中断呢?在中的按键驱动中, 使用disable_irq来关闭中断, 但是我在测试时进入中断后系统会死在中断处
2013-11-22 15:37:04
653
原创 使用DDD+GDB开发ARM Linux程序
自从Linux在我的板子上跑起来之后,我一直在想一个问题,怎么调试将来写的程序。其实我在Linux开发方面真得很外行,到了今天才知道GDB到底是干什么用的,呵呵。我相信很多人从Bootloader调试开始一直都使用LED啊,printf这样的方法来调试。我做毕设时,就是在MTDBLOCK里面划出一个USER分区,然后把编译好的程序放入文件系统映像,通过Bootloader用串口下到NAND
2013-11-22 15:37:02
1013
三星官方SMDK2450 SMDK2416 SMDK2451通用裸机测试程序
2014-01-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人