随笔分类 -  嵌入式

1 2 3 4 5 ··· 7 下一页
摘要:alpha 处理器 Alpha 处理器最早由美国DEC 公司设计制造,在Compaq (康柏)公司收购DEC 之后,Alpha 处理器继续得到发展,并且应用于许多高档的Compaq 服务器上,HP (惠普)收购的Compaq ,Alpha 便为HP(惠普)所有,不过HP (惠普)已经放弃发展alpha 处理器。arm 处理器 Arm 系列处理器 是英国Arm 公司设计的主流嵌入式32 位RISC 处理器,Arm 公司不直接生产Arm 处理器,而是采用IP 授权的方式由第3 方开发生产,著名的公司如Ti 、Samsung 等都有出品Arm 处理器。目前在手机领域广泛应用。avr32 处理器 Av 阅读全文
posted @ 2011-10-11 19:13 hnrainll 阅读(1320) 评论(0) 推荐(0) 编辑
摘要:KERNELDIR = /home/wenhao/platform/linux-2.6.34PWD := $(shell pwd)CROSS_COMPILE = /usr/local/arm/4.3.2/bin/arm-linux-CC = $(CROSS_COMPILE)gccobj-m := key.o modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) modulesclean: rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions.PHONY: modules clean 阅读全文
posted @ 2011-07-07 15:57 hnrainll 阅读(4932) 评论(0) 推荐(0) 编辑
摘要:S3C2440A 中的中断控制器可以从60 个中断源接收中断请求。这些中断源由内部外设提供,例如DMA 控制器、UART、IIC 等。在这些中断源中,UARTn、AC97 和外部中断EINTn 对于中断控制器来说是或逻辑。当接收来自内部外设和外部中断请求引脚的多个中断请求时,在仲裁过程后中断控制器请求ARM920T 的FIR 或IRQ 中断。仲裁过程依赖于硬件优先级逻辑且其结果写入中断未决寄存器,其帮助用户通报那些由不同中断源生成的中断。14.1 中断控制器操作14.1.1 程序状态寄存器(PSR)的F 位和L 位如果在ARM920T 的CPU 中的程序状态寄存器的F 位置1,CPU 不能接收 阅读全文
posted @ 2011-07-01 17:02 hnrainll 阅读(1261) 评论(0) 推荐(0) 编辑
摘要:中断处理: 中断是嵌入式里最重要的一个概念。一般一个系统对于一个设备要么采用中断方式,要么采用轮询方式 。中断方式可以有效地减少处理器负荷 ,但是如果大量采用中断则有可能降低处理速度 ,因为中断处理破坏了处理器的流水机制。复习下微机原理中中断处理过程和中断机制。 2440中支持FIQ(快速中断)和IRQ(普通中断)2种中断方式,一般只采用IRQ中断。2440有60个中断源,不支持中断嵌套。具体的参考用户手册第14章。下图是2440中断产生过程。具体的讲解一下,关于寄存器请查阅用户手册。 中断源分为2种,子中断中断源和中断源,当一个子中断产生一个中断信号,子中断源挂起寄存器(SUBRCPND)相 阅读全文
posted @ 2011-07-01 14:03 hnrainll 阅读(1305) 评论(0) 推荐(0) 编辑
摘要:S3C2440的中断寄存器:1.中断分两大类:内部中断和外部中断。2.外部中断。24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体参考datesheet数据手册。寄存器:EXTINT0-EXTINT2:三个寄存器设定EINT0-EINT23的触发方式。 EINTFLT0-EINTFLT3:控制滤波时钟和滤波宽度。 EINTPEND:这个是中断挂起寄存器,清除时要写1,后面还有几个是写1清除。当一个外部中断(EINT4-EINT23)发生后,那么相应的位会被置1。为什么没有 阅读全文
posted @ 2011-06-29 19:17 hnrainll 阅读(1994) 评论(0) 推荐(0) 编辑
摘要:S3c2440支持多达36个内部中断源和24个外部中断源,分别使用内部终端屏蔽寄存器INTMSK和外部中断寄存器MSK进行屏蔽控制。其中,外部中断源通过GPIO以复用的方式成为内部中断源的一部分。但是我们清楚,INTMSK是一个32位的寄存器,最多只能支持32中断,它是如何对应这么多中断的呢?首先我们先看INTMSK对应的位。INTERRUPT MASK (INTMSK) REGISTER (Continued)INT_ADC [31] 0 = Service available, 1 = Masked 1INT_RTC [30] 0 = Service available, 1 = Mask 阅读全文
posted @ 2011-06-29 15:47 hnrainll 阅读(1420) 评论(0) 推荐(0) 编辑
摘要:要想正确地执行2440的外部中断,一般需要完成两个部分内容:中断初始化和中断处理函数。 在具体执行中断之前,要初始化好要用的中断。2440的外部中断引脚EINT与通用IO引脚F和G复用,要想使用中断功能,就要把相应的引脚配置成中断模式,如我们想把端口F0设置成外部中断,而其他引脚功能不变,则GPFCON=(GPFCON & ~0x3) | 0x2。配置完引脚后,还需要配置具体的中断功能。我们要打开某一中断的屏蔽,这样才能响应该中断,相对应的寄存器为INTMSK;还要设置外部中断的触发方式,如低电平、高电平、上升沿、下降沿等,相对应的寄存器为EXTINTn。另外由于EINT4到EINT7 阅读全文
posted @ 2011-06-28 21:34 hnrainll 阅读(1447) 评论(0) 推荐(0) 编辑
摘要:S3c2440 有5 个16 位的定时器。定时器0、1、2、3 有脉宽调制功能(PWM)。定时器4有一个没有输出引脚的内部定时器。定时器0 有一个用于大电流设备的死区生成器。定时器0 和1 共享一个8 位的预分频器(预定标器),定时器2,3,4 共享另一个8 位预分频器.定时器的时钟源为PCLK,首先经过预分频器降低频率后,进入第二个分频.可以生成5 种不同的分频信号(1/2,1/4,1/8,1/16 和TCLK)定时器启动后,TCNTn开始减一计数,当TCNTn 等于TCMPn时, TOUTn 反转, TCNTn继续减数.当TCNTn= 0 时, TOUTn 再次反转,并触发中断(中断已经使 阅读全文
posted @ 2011-06-28 15:01 hnrainll 阅读(2597) 评论(0) 推荐(0) 编辑
摘要:mdev是busybox下的udev的精简版,适合在嵌入式系统下管理设备但mdev会把所有的设备文件都动态地创建在/dev/目录下,如果程序使用dev目录子目录下的设备,就必须修改程序,比较麻烦,当然也可以在mdev运行之后,手工创建子目录,然后再用 ln -s 做设备文件的软链接这里有人作出了更好的脚本处理机制:http://lists.busybox.net/pipermail/busybox/2007-May/027309.html再贴上mdev的使用说明-------------------------------------------MDEV 入门(转)Busybox-1.7.0/ 阅读全文
posted @ 2011-06-25 14:45 hnrainll 阅读(16315) 评论(2) 推荐(3) 编辑
摘要:rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具优点:比ftp命令方便,而且服务器不用打开FTP服务。首先先了解有关的两个命令可以提供很方便的操作:sz:将选定的文件发送(send)到本地机器rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器第一步:下载rzsz-3.48.tar.gz文件下载地址:http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz [root@localhost soft]# ll总计 72-rw-r--r-- 1 root root 65566 2004-05 阅读全文
posted @ 2011-06-24 12:06 hnrainll 阅读(3276) 评论(0) 推荐(0) 编辑
摘要:从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用 class_device_create创建对应的设备。(不太明白什么是devfs,udev,对linux中的文件系统没有什么概念呢。)大致用法如下:struct class *myclass = class_create(THIS_MO 阅读全文
posted @ 2011-06-24 06:52 hnrainll 阅读(23375) 评论(1) 推荐(1) 编辑
摘要:这确实有些混乱:1. 命令行参数“console=ttySAC0”与/dev/目录没有任何关系,它被用来选择从哪个设备输出内核、驱动的printk信息:①. 在内核kernel/printk.c中,有这一行代码:__setup("console=", console_setup);对于命令行参数“console=ttySAC0”,console_setup函数会将设备名(name)、索引(index)解析出来:名为ttySAC,索引为0──表示第一个设备②. S3C2410的串口驱动文件drivers/serial/s3c2410.c中,有如下数据结构:1882 stati 阅读全文
posted @ 2011-06-23 16:43 hnrainll 阅读(4776) 评论(0) 推荐(0) 编辑
摘要:mdev的hotplug模式1, busybox 添加mdev支持2, 在/etc/rc.d/rcS中添加#mount filesystem/bin/mount -a#start mdevecho /sbin/mdev > /proc/sys/kernel/hotplug #设置系统的hotplug程序为mdevmdev –s/etc/fstab的内容如下:proc /proc proc defaults 0 0none /tmp ramfs defaults 0 0mdev /dev ramfs defaults 0 0sysfs /sys sysfs defaults 0 0执行md 阅读全文
posted @ 2011-06-23 16:31 hnrainll 阅读(3256) 评论(0) 推荐(0) 编辑
摘要:在LINUX中添加按键的驱动并编译进入内核?第一步:将keydriver.c的驱动源文件拷到drivers/char目录下第二步:修改Kconfig文件. 打开Kconfig在 config DEVKMEME后添加以下信息: config UNSP2440_key bool "key driver sunplusapp S3C2440 board" default y help this is GPIO driver for wenhao S3C2440 board.第三步:make menuconfig Device driver-à character dev 阅读全文
posted @ 2011-06-22 20:35 hnrainll 阅读(2089) 评论(0) 推荐(0) 编辑
摘要:如何在嵌入式LINUX中添加ARM开机图片?1、如果要让系统启动起来看到 bootlogo小企鹅,必须得在 make menuconfig 中进行配置添加,如下 Device Drivers ---> Graphics support ---> Bootup logo下面可以全部选中支持2、打开gimp号称 linux 下的 photoshop ,安装windows版(gimp-2.6.9-i686-setup.exe) 打开任何格式的一张将要转换的图片 选择:图像--->模式--->索引颜色转换--->最大颜色数量设置为(224)--->转换 还可以通过: 阅读全文
posted @ 2011-06-22 20:24 hnrainll 阅读(3575) 评论(0) 推荐(0) 编辑
摘要:本文由Jacky原创,来自http://blog.chinaunix.net/u1/58780/showart.php?id=462971对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。先看一下GNU官方网站上对.lds文件形式的完整描述:SECTIONS {...secname start BLOCK(align) (NOLOAD) : AT ( ldadr ){ contents } >region :phdr =fill...}secname和contents是必须的,其他的都 阅读全文
posted @ 2011-06-22 20:17 hnrainll 阅读(1339) 评论(0) 推荐(0) 编辑
摘要:Makefile文件如下:KERNELDIR = /home/wenhao/platform/linux-2.6.34PWD := $(shell pwd)CROSS_COMPILE = /usr/local/arm/4.3.2/bin/arm-linux-CC = $(CROSS_COMPILE)gccobj-m := key.o modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) modulesclean: rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions.PHONY: modules 阅读全文
posted @ 2011-06-22 19:06 hnrainll 阅读(1246) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.360doc.com/content/090528/23/150654_3691341.html从PC机下载东西到开发板的嵌入式linux系统里面,首先会想到用tftp sftp等网络工具从网口下载。但如果网络用不了,只能通过串口下载怎么办呢?这个时候有两个工具能帮到你:一个是zmrx、zmtx,另外一个是lsz、lrz。下面介绍一下lsz/lrz的使用方法。一、编译lrzsz并下载到开发板上 从http://download.chinaunix.net/download/0007000/6293.shtml下一个lrzsz的tar包,解压缩后输入./configu 阅读全文
posted @ 2011-06-22 19:01 hnrainll 阅读(9800) 评论(0) 推荐(0) 编辑
摘要:编译内核时候的一个错误提示 make: *** arm/kernel.git/arch/arm: Is a directory. Stop. 这个错误是由在Makefile的 ARCH ?= $(SUBARCH) 这行的后面多了一个空格造成的。 所以,在编辑Makefile时候,每行结尾,一定要确认 阅读全文
posted @ 2011-06-22 11:46 hnrainll 阅读(5887) 评论(0) 推荐(1) 编辑
摘要:mini2440的LEDS驱动程序和测试程序详解http://hi.baidu.com/760159/blog/item/75c225f3dea26d19b17ec525.html一 leds的驱动程序位置:linux 2.6.29/drivers/char/mini2440_leds.c#include <linux/miscdevice.h>#include <linux/delay.h>#include <asm/irq.h>#include <mach/regs-gpio.h>//具体头文件位置/opt/FriendlyARM/mini2 阅读全文
posted @ 2011-06-22 09:29 hnrainll 阅读(1185) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 7 下一页