- 博客(22)
- 资源 (6)
- 收藏
- 关注
原创 Android常亮设置以及读取电量
1.adnroid常亮设置getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);2.读电量的方式(广播方式实现)[1]新建一个广播类去接收系统电池变化信息,在这里通过调用intent.getExtras()方法得到intent携带的Bundle集合 其中有当前电量字段”level”,总电量”scal
2017-03-14 14:46:36 468
原创 linux字符设备驱动解析
一、linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。块设备:是指可以从设备的任意位置读取一定长度数据的设备。块设备包括硬盘、磁盘、U盘和SD卡等。每一个字符设备或块设
2015-12-14 21:49:10 1216
原创 嵌入式驱动关于Makefile的编写例子
linux 驱动总结linux驱动接口里的_init _exit 其实就是宏。linux驱动程序不能用GCC直接编译生成模块。要用makefileifneq ($(KERNELRELEASE),)obj-m := test.oelse#KERNELDIR ?= /lib/modules/$(shell uname -r)/buildKERNELDIR :=
2015-12-13 23:34:58 2320
原创 linux内核顶层Makefile分析
熟悉内核的Makefile对开发设备驱动、理解内核代码结构都是非常重要的linux2.6内核Makefile的许多特性和2.4内核差别很大,在内核目录的documention/kbuild/makefiles.txt中有详细的说明。给大家一个中文版的翻译=== 目录 === 1 概述 === 2 用户与作用 === 3 Kbuild文件
2015-12-12 00:56:43 1089
转载 关于HEX与BIN文件分析
HEX文件:由一条条具有规定格式、由16进制的数据表示特定特定信息的HEX文本记录组成的可烧写文件,每条记录中的数据包含有地址与要烧写的数据以及检验码等信息。每条烧写文本记录中若包含数据记录,那么16进制的数据与BIN文件【16进制表示时】是一样的,HEX每条文本记录多出来的就是地址与检验信息等....BIN文件,就是直接可以烧写到存储器中的二进制文件,程序运行后,对应地址的数据与BIN是一摸
2014-11-27 13:44:05 3024 2
原创 mini2440开发板与PC直连使用tftp的配置方法
没有路由器使用交叉网线直连,通过uboot下载uImage的步骤1、禁用笔记本的无线网卡;2、笔记本的Windows IP(本地连接)手动设置为:192.168.1.1;默认网关 设置为:192.168.1.13、 Vmware设置为桥连接,虚拟机fedora 14的IP设置为:192.168.1.24、开发板的u-boot参数的设置:setenv ipaddr 192.168
2014-01-08 09:26:51 2116
原创 DS1302读写
#ifndef __DS1302_H__#define __DS1302_H__sbit SCK = P1^4; //时钟线sbit SDA = P1^5; //数据线sbit CE = P1^6; //片选控制线#define CE_CLR CE=0//片选控制信号置低#define CE_SET CE=1//片选控制信号置高
2014-01-05 12:49:30 759
转载 宽字节与窄字节(Ansi与Unicode)
①、Ansi与Unicode简要说明及各自的优缺点:他们是两种字符的编码格式,Ansi=窄字节,Unicode=宽字节,Ansi用char格式表示一个字符,占用一个字节的存储空间,最多表示255个字符,表示英文还可以,但对于中文、日文、韩文等语言来说就不够用了,所以如果你的程序是Ansi编码的话,那么你写的中文语言的程序拿到日文、韩文等系统上面就会出现乱码。所以有了Unicode,用二
2013-12-12 22:12:56 3230
原创 STC8951单片机内部存储
单片机运行时的数据都存在于RAM(随机存储器)中,在掉电后RAM中的数据是无法保留的,那么怎样使数据在掉电后不丢失呢?这就需要使用EEPROM 或FLASHROM 等存储器来实现。在传统的单片机系统中,一般是在片外扩展存储器,单片机与存储器之间通过IIC或SPI 等接口来进行数据通信。这样不光会增加开发成本,同时在程序开发上也要花更多的心思。在STC单片机中内置了EEPROM(
2013-07-04 17:07:39 3673 1
原创 STM32 DMA外设地址的计算问题
STM32 DMA外设地址的计算其实很简单 其实就是外设寄存器的起始地址+外设数据寄存器的地址偏移。 外设寄存器的起始地址:可以从数据手册上存储器映像查得(见2.3) 外设数据寄存器的地址偏移:就是外设数据寄存器的偏移地址(见各外设的数据寄存器)。 例如:ADC1 起始地址为0X4001 2400 ADC_DR 偏移地址0X4C。 则可
2013-05-28 16:31:37 1493
转载 Stm32f103 ADC 学习笔记
在做有AD模块项目的时候遇到几个问题:1, ADC配合DMA采样规则是怎样的。2, ADC在DMA采可否不连续采样,以提高有效采样使用率和降低功耗。3, 如何提高有效利用率和降低功耗,并减少CPU的占用时间。4, ADC的如何多通道采样。针对以上几个问题做解答。ADC的采样模式主要分两个:规则采样和注入采样。规则模式可采样16个通道,注入模式最多只能4个通道。配
2013-05-28 14:47:00 1653
转载 STM32作为主机I2C,读写24C02 EEPROM
1、 时钟和数据的传输:开始和停止条件,数据在SCL的高电平期间有效,在SCL的低电平期间改变。2、 开始条件:在SCL高电平期间,SDA产生一个下降沿3、 停止条件:在SCL高电平期间,SDA产生一个上升沿4、 应答:成功接收到数据(地址和数据),产生一个应答位(在第9个时钟周期,将SDA拉低)下面是源程序:原理上说,下面程序再移植时,只要将数据类型变化,可以应用到任何处理器
2013-05-24 17:47:27 7225
原创 SysTick_Config()函数的参数配置,SysTick时钟配置
void SysTick_Configuration(void){ /* Setup SysTick Timer for 100 msec interrupts */ if (SysTick_Config((SystemCoreClock) / 10)) // 1/10s=100ms {
2013-05-20 09:20:23 5746
原创 在MDK中如何生成*.bin格式的文件
在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥Realview MDK集成开发环境的优势,将*.axf格式文件或*
2013-05-06 10:59:25 583
原创 MDK在链接时提示空间不够(No space in execution regions with .ANY selector... )的解决方案总结
RealView MDK具有强大的编译、链接功能。嵌入式设备拥有的资源往往有限,如果一个程序编译、链接之后的可执行文件大小略大于存储大小时,则不能生成可执行文件进行调试或固化到Flash中。在这种情况下我们一般不去从硬件上调整存储空间的大小(有些存储空间在片内,实在无法调整),而是去修改程序,试图将程序简化、将缓存减小、减少全局变量、少用大数组多用指针等等人工方法,有些时候这些方法很有效。但如果使
2013-04-25 17:08:22 2165
原创 Linux/uClinux下的RS-485通信驱动程序实现
这篇文章描述如何在Linux/uClinux操作系统下实现RS-485的通信驱动程序。提供一种可借鉴的驱动程序设计方法。1.RS-485总线 RS-485是半双工的通信,它一般使用异步的串口与RS-485驱动芯片连接,在提供一条方向控制信号来控制RS-485驱动芯片的收发数据。 在总线型的半双工通信中,收发是不可同时进行,且总线上某一时刻只能有一个在发送,
2013-04-13 12:21:47 7582
原创 Linux C 语言 获取系统时间信息
比如获取当前年份: /* 获取当前系统时间 暂时不使用 int iyear = 0; int sysyear = 0; time_t now; struct tm *timenow; time(&now); timenow = localtime(&now);
2013-04-12 10:40:26 686
原创 软件数据库移植及数据表设计
软件数据库移植及数据表设计 1. 数据库简介常用的数据库有Oracle,mySQL和SQLite,Oracle属于商业软件,需要购买,会增加产品成本;mySQL社区版是免费软件,但占用资源较多,且不易移植;SQLite是一个精简版的数据库软件,免费高效,支持绝大部分SQL指令。因此考虑到系统总体性能和资源占用,采用SQLite作为系统的数据库软件。 SQLite数据库特点
2013-04-11 11:05:04 612
原创 uboot优化
本人的开发环境是u-boot-1.1.6版本,fedora 9+虚拟机的linux系统,开发板cpu为at9263ek的板子,以下是本人在试验过程中总结出来的步骤,(1)修改/u-boot-1.1.6/common/main.c第269行udelay (10000);改为udelay (10);(2)修改/u-boot-1.1.6/lib_arm/board.c第459,udelay(10
2013-04-08 15:33:12 584
转载 关于ARM的22个常用概念!
1.ARM中一些常见英文缩写解释MSB:最高有效位;LSB:最低有效位;AHB:先进的高性能总线;VPB:连接片内外设功能的VLSI外设总线;EMC:外部存储器控制器;MAM:存储器加速模块;VIC:向量中断控制器;SPI:全双工串行接口;CAN:控制器局域网,一种串行通讯协议;PWM:脉宽调制器;ETM:嵌入式跟踪宏;CPSR:当前程序状态寄存器;
2013-03-28 12:27:22 449
原创 linux非阻塞式socket编程之select()用法
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方
2013-01-06 16:05:01 698
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人