嵌入式
文章平均质量分 79
_修_
平凡
展开
-
嵌入式知识
1. 第0章l 工具的使用,包括SecureCRT、DNWSerial tools secure CRT : Open secure CRT , set the port : COM1, set the Baud rate is 115200.Serial tools DNW: Open DNW, set USB Port ,选择要烧写的程序Different: S:Can原创 2012-06-24 16:25:02 · 601 阅读 · 0 评论 -
蓝牙BlueZ的移植
一切版权归bluez的作者---同济大学高性能计算中心 Dennis 欢迎各位发邮件给我和我讨论 dennis.he.2005@gmail.com 先介绍一下硬件,我用的是电脑卖场里面随便买到的 USB蓝牙适配器,价格在80元左右,应该是台产的,没有牌子,像一个小一点的U盘。买之前叫卖家在windows下测试一下,带一个带蓝牙的手机过去试试看,确认能用再买。 linux上的转载 2013-05-06 16:28:03 · 2170 阅读 · 0 评论 -
mini2440 蓝牙驱动移植
原文地址:蓝牙驱动移植">mini2440 蓝牙驱动移植我的蓝牙设备是:USB蓝牙,芯片制造商: CSR, 芯片型号:41B14。芯片上贴的是AS6320QA。可见是水货。但在windows下测试可以使用。Linux2.6版本之后的内核一般都有蓝牙模块的配置,所以不用再打补丁了。一般在配置内核的时候选择如下选项:[*] Networking support --->转载 2013-05-06 16:10:13 · 2227 阅读 · 0 评论 -
串口驱动(四)--中断模式实现禁用fifo串口通信浅析
硬件平台--s3c44b0x 一.驱动程序的初始化(在使用uart之前,必须保证已经对其定义和注册)int uart_init(void){printk("registering uart device...");result = register_chrdev(254,"uart_dev",&uart_fops);if(resultprintk("can not r转载 2013-03-14 10:20:42 · 1211 阅读 · 0 评论 -
unbalanced enable irq 问题的解决 以及共享的gpio中断引起的问题
最近在工作中使用irq时遇到如下问题,根据log显示应该是什么所谓的不平横问题,先前也没有仔细研究这个问题,只是定位到是enable_irq函数调用所致。因为在项目中使用的中断是gpio中断,该中断在项目中的实现方式为多个gpio中断共享一个真实的物理中断,因此当这个真实的物理中断发生后由系统(就是另一个哥们写的irq驱动)查询到底是连接到这个物理中断上的哪一个具体的gpio产生的了中断(通过转载 2012-11-14 10:20:00 · 5579 阅读 · 0 评论 -
GPIO简介
GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。GPIO口一是个比较重要的概念,用户可以通过GPIO口和硬件进行数据交互(如UART),控制硬件工作(如LED、蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。GPIO口的使用非常广泛。GPIO的转载 2012-11-09 09:18:35 · 36318 阅读 · 1 评论 -
按键驱动
这里主要是仿照《嵌入式Linux开发完全手册》上的例子写的,只是增加了别外两个按按键。在我的mini2440开发板上有6个按键。在上两篇文章中,主要分析了驱动中的整体的流程,现在来看一个具体的例子,是如何使用中断的。1. 模块的初始化函数和卸载函数 /* 执行"insmod mini2440_buttons.ko"命令时就会调用这个函数*/static int __转载 2012-09-21 16:33:57 · 672 阅读 · 0 评论 -
Linux设备模型基础---操作函数
关于kref的操作函数初始化?voidkref_init(structkref *kref){atomic_set(&kref->refcount, 1); mp_mb();}注意smp_mb以及smp_mb_*的目的是保证在多核SMP机器上的一致性,初始化后引用计数转载 2012-09-10 15:23:02 · 595 阅读 · 0 评论 -
内核里面writel(readl)是如何实现的
writel和readl,这两个个函数实现在操作系统层,有内存保护的情况下,往一个寄存器或者内存地址写一个数据。先说一下writel: 在arch/alpha/kernel/io.c中有188 void writel(u32 b, volatile void __iomem *addr)189 {190 __raw_writel(b, addr);191转载 2012-09-05 09:30:45 · 11891 阅读 · 0 评论 -
#define A (* (volatile unsigned long *) 详解
一.#define A (* (volatile unsigned long *) 0x48 ) // 8位处理#define A (* (volatile unsigned long *) 0x48000000) // 32位处理器对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射的。如果系统结构支持独立的IO地址空间,并且转载 2012-09-03 19:46:38 · 939 阅读 · 0 评论 -
volatile 简介
volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.简单地说就是防止编译器对代码进行优化.比如如下程序: XBYTE[2]=0x55; XBYTE[2]=0x56; XBYTE[2]=0x57; XBYTE[2]=0x58; 如果对外部硬件上述四条语句分别表示不同的操作,会产生四种不同的动作,那么编译器就不能像对待纯粹的转载 2012-09-03 14:54:25 · 707 阅读 · 0 评论 -
Android驱动例子(LED灯控制)
本例子,讲述在android2.1上完全自已开发一个驱动去控制硬件口并写应用测试该驱动,通过这样一个例子,解析android下的驱动开发流程的应用调用流程,可以说是很好的入门引导。要达到的效果:通过android的应用,调用驱动程序,在开发板上控制4个LED的亮灭。 一、硬件原理 如上图,通过4个IO口控制这LED,低电平L转载 2012-07-10 21:16:52 · 464 阅读 · 0 评论 -
linux_usb驱动
转这篇文章的目的是怕自己忘了 随着生活水平的提高,人们对USB设备的使用也越来越多,鉴于Linux在硬件配置上尚不能全部即插即用,因此关于Linux如何配置和使用,成为困扰我们的一大问题。 什么是USB? USB是英文Universal SerialBus的缩写,意为通用串行总线。USB最初是为了替代许多不同的低速总线(包括并行、串行和键盘连接)而设计的,它以单一类转载 2012-07-06 10:20:02 · 672 阅读 · 0 评论 -
ARM9(S3C2440)的实时时钟(RTC)——理论知识及程序实例讲解
在一个嵌入式系统中,实时时钟单元可以提供可靠的时钟,包括时、分、秒和年、月、日。即使系统处于关机状态下,它也能够正常工作(通常采用后备电池供电,能够可靠工作十年),其外围也不需要太多的辅助电路,只需要一个高精度的晶振。它具有以下特点:• 时钟数据采用BCD编码或二进制表示;• 能够对闰年的年、月、日进行自动处理;• 具有告警功能,当系统处于关机状态时,能产生告警中断;•转载 2012-06-24 15:15:10 · 2365 阅读 · 2 评论 -
linux蓝牙驱动成功安装
我的系统是红旗桌面5.0蓝牙适配器: ISSC芯片, USB接口(市面上还有其他的一些品牌,大多没有问题) 蓝牙手机:索爱T628 (我的手机是moto A732的) 1,加载蓝牙适配器 插入USB口之后,可以使用lsusb命令,看到: Bus 004 Device 003: ID 1131:1001 Integrated System Solution Co转载 2013-05-06 16:12:10 · 4333 阅读 · 0 评论