- 博客(38)
- 资源 (26)
- 收藏
- 关注
转载 PID控制算法
简要解析参考资料,来自这里通过误差信号控制被控量,而控制器本身就是比例、积分、微分三个环节的加和。这里我们规定(在t时刻):输入量为rin(t);输出量为rout(t);偏差量为err(t)=rin(t)-rout(t);如果偏差为0,则比例环节不起作用,只有存在偏差时,比例环节才起作用。而微分信号则反应了偏差信号的变化规律,或者说是变化趋势,根据偏差信号的变化趋势来进行超前调节,从而增加了系统的快速性。。位置型PID的C语言实现第一步:定义PID变量结构体,代码如下:struct
2021-05-10 16:32:47 831
转载 Linux多线程pthread使用
From:http://blog.csdn.net/jiajun2001/article/details/12624923原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责我并不假定你会使用Linux的线程,所以在这里就简单的介绍一下。如果你之前有过多线程方面的编程经验,完全可以忽略本文的内容,因为它非常的初级。首先说明一下,在Linux编写多线程程序需要包含头文件pthread.h。也就是说你在任何采用多线程设计的程序中都会看到类似这样的代..
2021-02-23 16:54:09 567
原创 Overlay机制
Android overlay 机制允许在不修改packages中apk的情况下,来自定义 framework和package中的资源文件,实现资源的定制。来达到显示不同的UI得目的(如MIUI)。 以下几类能够通过该机制定义:Configurations (string, bool, bool-array)Localization (string, string-ar
2014-05-21 17:58:34 3461
转载 Android权限及chown失败原因查找
原文: http://blog.csdn.net/plato_f/article/details/18793049 文章将描述在Android2.3.7中移植wifi所碰到的一个chown失败问题,并记录问题分析的过程。注意文章中引用了《UNIX环境高级编程》。1:发现问题启动Android 的wifi硬件的时候,system_server进程将调用hardware层所提供的w
2014-03-20 15:04:06 2777
原创 TCP/IP结构对应OSI与TCP、UDP协议及两者的区别
TCP/IP结构对应OSI OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 翻译、加密、压缩 没有协议 会话层 对话控制、建立同步点(续传) 没有协议 传输层 端口寻址、分段重组、流量、差错控制 T
2014-01-13 14:40:00 1374
原创 递归求整型数组前N个数的和
int sum(int arr[], int n){int i=0;if(arr[0] != arr[n-1]){i = sum(&arr[1],n-1);}return (i+arr[0]);}
2014-01-08 14:15:48 1629
原创 Eclipse javah 配置
${project_loc}\src-classpath .;./classes -d ${project_loc}\jni -jni ${java_type_name}
2013-12-09 09:33:50 611
原创 《TCPIP详解卷一》第五章(RARP逆地址解析协议)学习笔记
5.1引言具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址。但是无盘机,如X终端或无盘工作站,则需要采用其他方法来获得I P地址。网络上的每个系统都具有唯一的硬件地址,它是由网络接口生产厂家配置的。无盘系统的R A R P实现过程是从接口卡上读取唯一的硬件地址,然后发送一份RA R P请求(一帧在网络上广播的数据),请求某个主机响应该无盘系统的I P地址(在R A
2013-09-10 15:17:59 690
原创 《TCPIP详解卷一》第四章(ARP地址解析协议)学习笔记
4.1引言当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48 bit的以太网地址来确定目的接口的。设备驱动程序从不检查IP数据报中的目的I P地址。所以就有了ARP协议,为这两种不同的地址形式提供映射。本章及下一章我们要讨论的两种协议:A RP(地址解析协议)和R A R P(逆地址解析协议)A R P为I P地址到对应的硬件地址之间提供动态映射。我们之所以用
2013-09-10 14:59:06 836
原创 《LINUX设备驱动程序》第4章(调试技术)学习笔记
第 4 章 调试技术内核中的调试支持开发的内核应当激活的配置选项. 除特别指出外, 所有的这些选项都在menu config的 "kernel hacking"菜单. 注意有些选项不是所有体系架构都支持其中的选项.CONFIG_DEBUG_KERNEL这个选项只是使其他调试选项可用; CONFIG_DEBUG_SLAB这个重要的选项打开了内核内存分配函数的几类检查;
2013-09-10 14:13:28 1241
原创 《LINUX设备驱动程序》第3章(字符驱动)学习笔记
第 3 章 字符驱动主次编号:使用命令ls –l /dev,下面的列表显示了一个典型系统上出现的几个设备. 它们的主编号是 1, 4, 7, 和 10, 而次编号是 1, 3, 5, 64, 65, 和 129. crw-rw-rw- 1 root root 1, 3 Apr 11 2002 null crw------- 1 root root 10, 1
2013-09-10 12:32:35 1221
原创 《LINUX设备驱动程序》第2章(建立和运行模块)学习笔记
第 2 章 建立和运行模块Hello World 模块:#include #include MODULE_LICENSE("DualBSD/GPL"); static int hello_init(void) { printk(KERN_ALERT "Hello, world\n"); return 0; } static
2013-09-10 12:31:40 1180
原创 《TCPIP详解卷一》第三章(IP网际协议)学习笔记
3.1引言I P提供不可靠、无连接的数据报传送服务:不可靠(u n r e l i a b le)的意思是它不能保证I P数据报能成功地到达目的地。I P仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区,I P有一个简单的错误处理算法:丢弃该数据报,然后发送I C M P消息报给信源端。任何要求的可靠性必须由上层来提供(如T C P)。无连接(c o n n e
2013-09-06 15:17:21 1052
原创 《TCPIP详解卷一》第二章(链路层)学习笔记
2.1引言链路层主要有三个目的:(1)为I P模块发送和接收I P数据报;(2)为A R P模块发送A R P请求和接收A R P应答;(3)为R A R P发送R A R P请求和接收R A R P应答。T C P / I P支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网、令牌环网、F D D I(光纤分布式数据接口)及R S-2 3 2串行线路等。 2.2
2013-09-04 15:01:25 1081
转载 IEEE(电子电气工程师协会)802局域网标准
IEEE(电子电气工程师协会)802局域网标准● IEEE 802标准概述IEEE 802标准的大部分是在80年代由委员会制订的,当时个人计算机联网刚刚兴趣。随着网络技术的不断进步,扩充和制订了不少新的标准,因此,IEEE 802家族也越来越庞大,成员也越来越多。● IEEE801.1 网间互连定义802.1是关于LAN/MAN桥接、LAN体系结构、
2013-09-04 10:40:44 2547
原创 《TCPIP详解卷一》第一章学习笔记
1.2协议分层应用层和运输层使用端到端协议(end-to-end)网络层提供的是逐跳协议(hop-by-hop)网络层(I P)提供点到点的服务路由器:它是一种特殊的用于网络互连的硬件盒。路由器的好处是为不同类型的物理网络提供连接(以太网、令牌环网、点对点的链接和F D D I(光纤分布式数据接口)等等)。 1.3TCPIP协议簇分层网络层I P提供的是一种
2013-09-04 10:08:13 1202
原创 Android 系统级开发学习(更改android 默认语言)
1. 进入android 源代码build/target/product目录,在languages_full.mk或languages_small.mk文件中, 修改PRODUCT_LOCALES的值如下: 假如当前PRODUCT_LOCALES := en_US zh_CN ... ... (English 简体中文) 可以修改为:PRODUCT_LOC
2013-08-29 16:46:09 935
原创 real6410移植linux2.6.39.4内核(2)-添加nand flash驱动及启动cramfs文件系统
real6410移植linux2.6.39.4内核(2)-添加nand flash驱动及启动cramfs文件系统又经过了一天的奋战,搜索了无数资料,今天终于VFS: Mounted root (cramfs filesystem) 了 ,这句话的意思就是说内核已近发现了cramfs文件系统,之前一直有的问题就是当我修改内核启动参数使其从cramfs启动后,总是出现这种提示VFS:
2012-03-23 18:50:03 1659
原创 real6410移植linux2.6.39.4内核(1)-内核移植环境的搭建及测试
经过几天的失败经历,以及逐渐对内核移植步骤的了解,现在我想实现的内容很简单,就是仅仅把一个新的内核(我这里是官网下载的2.6.39.4内核)在开发板上面跑起来,也可以叫他裸跑,意思就是说什么驱动都不带只要内核能启动就行了,说是很简单的但是我却重重遇到困难,刚开始我对移植内核点都不了解。虽然编译每次都能成功。但是下载内核后,总是运行在Uncompressing Linux... done
2012-03-22 12:07:37 1256
转载 S3c6410 linux内核移植(11)---用SD卡下载uboot、linux内核和文件系统
1、 移植mtd-utils:a) 下载utd-utils 下载地址为ftp://ftp.infradead.org/pub/mtd-utils/b) 交叉编译mtd-utilsi 修改Makefile CROSS=arm-linux-ii makeiii 查看下mtd-utils-1.0.0目录下是否生成了咱们所需要大工具 (flashcp
2012-03-16 16:01:26 986
转载 S3c6410 linux内核移植(10)---添加充电控制脚驱动(LED驱动)
1、原理分析无线数码相框的GPQ3脚用于充电控制,当GPQ3为高电平是为充电状态,当为低电平时不充电。led的控制原理和充电脚的控制原理是一模一样的都是对某个io口置1或清零,所以在这里可以用led驱动实现对充电控制脚的控制。Linux内核下drivers/leds/ledsgpio.c实现了一个和体系结构无关的led驱动,使用此led驱动我们只需要在BSP的板文件(arch/ar
2012-03-16 16:00:39 900
转载 S3c6410 linux内核移植(9)---添加adc驱动、电池电量检测之文件修改
修改arch/arm/plat-s3c64xx/adc.c首先在文件开头部分引掉mutex结构体用semaphore结构体代替://static DEFINE_MUTEX(adc_mutex);DECLARE_MUTEX(ADC_LOCK);然后在read函数中修改互斥的实现s3c_adc_read(struct file *file, char __use
2012-03-16 16:00:06 938
转载 S3c6410 linux内核移植(8)---添加adc驱动、电池电量检测之原理
1、 原理分析S3c6410的内部adc结构图:ADC模块总共有8个通道可以进行模拟信号的输入,分别是AIN0、AIN1、AIN2、AIN3、YM、YP、XM、XP。首先模拟信号从任一通道输入,然后设定寄存器中预分频器的值来确定AD转换器频率,最后ADC将模拟信号转换为数字信号保存到ADC数据寄存器0中(ADCDAT0),然后ADCDAT0中的数据可以通过中断或查询的方式来
2012-03-16 15:59:22 1050
转载 S3c6410 linux内核移植(8)---添加pwm驱动,控制lcd背光亮度
一般LCD的背光LED是通过PWM控制,调节PWM的占空比即可调整背光亮度。比如S3C6410的GPF15,即PWM1,可连接LCD的背光控制接口,进行背光控制。内核中pmw配置函数位于”arch/arm/plat-s3c64xx/pwm-s3c6410.c”中的:int s3c6410_timer_setup (int channel, int usec, unsigned long g_tcn
2012-03-16 15:58:41 2249
转载 S3c6410 linux内核移植(7)---添加8.9寸lcd支持
新版lcd相比于旧版lcd显示效果更好, 但是在ut-6410开发板上用新版lcd驱动是会使触摸屏严重抖动,在无线数码相框上则不会有此现象,可以再配置时进行选择。新版lcd配置旧版lcd配置1、 旧版本lcd驱动a) 创建s3cfb_lcd9a.c文件复制s3cfb_lte480wv.c为s3cfb_lcd9a.c,替换34到41行的
2012-03-16 15:57:54 877
转载 S3c6410 linux内核移植(6)---添加按键驱动
以下为ut-s3c6410开发板的键盘驱动,如果是其他板要做相应的改动。包括arch/arm/machs-3c6410/mach-smdk6410.c的static struct gpio_keys_button smdk6410_buttons[]结构体和drivers/input/keyboard/gpio_keys.c文件下的int s3c_gpio_keys[]结构体。1、 添加添
2012-03-16 15:56:59 647
转载 S3c6410 linux内核移植(5)---改进触摸屏驱动
由于我们使用的电阻式触摸屏,控制器根据检测到的电阻变化来计算接触点的坐标,当触摸力度较小时会出现抖动情况,通过多次取点求平均值发现效果并不好,我们在取值时应该去掉无效的点,网上查了一下说可以通过计算触摸压力的方法不过比较麻烦。 我采用的方法是去除抖动较大的不稳定点、即取四个点,分别比较这四个点的x轴和y轴的大小,取出最大值Xmax、Ymax和最小值Xmin、Ymin,然后计算a =(Xmax-Xm
2012-03-16 15:56:09 752
转载 S3c6410 linux内核移植(4)---修改flash分区
对于Nandflash 驱动还有一个重要的方面是Nandflash 的分区,这个分区表位于内核源码目录的arch/arm/plat-s3c/include/plat/partition.h 文件中。一下为一种分区方式,可根据需要自行对分区进行修改。struct mtd_partition s3c_partition_info[] = { { .
2012-03-16 15:55:02 734
转载 S3c6410 linux内核移植(3)--- usb驱动出错解决
系统启动时及插入u盘时会打印如下错误:hub 1-0:1.0: Cannot enable port 1. Maybe the USB cable is bad? 此为平台输入时钟设置错误,修改如下:把arch/arm/mach-s3c6410/mach-smdk6410.c文件中的:#ifdef USB_HOST_PORT2_EN#define OTGH_PHY_CLK
2012-03-16 15:54:16 6815
转载 S3c6410 linux内核移植(2)--- 添加dm9000网卡驱动
Linux 内核下的 drivers/net/dm9000.c 实现了与体系结构无关的 DM9000 网卡驱动,只需要在 BSP 的板文件(arch/arm/mach-s3c6410/smdk-6410.c)中定义相关的 platform 设备和数据:1、 添加引脚宏定义在arch/arm/mach-s3c6400/include/mach/map.h文件中添加宏定义#define
2012-03-16 15:53:21 820
转载 S3c6410 linux内核移植(1)---下载与配置
一、 下载内核及交叉编译工具(1)http://git.kernel.org/?p=linux/kernel/git/kki_ap/linux-2.6-samsung.git;a=summary到以上地址下载linux内核的三星分支,这里选取“2.6.28-samsung”版本。(2) 安装4.3.1-eabi-armv6编译器.http://cs.sch.ac.kr/~c
2012-03-16 15:51:34 854
原创 2410从WinCE4.2到WinCE6.0移植过程(前言)
最近打算走前人的路,从WinCE4.2到WinCE6.0移植过程,据说还是有一定难度的,不过试着学习下吧! 刚拿到一块real2410 的开发板,想搞一下wince的移植,但是官网提供的是wince4.2的wince,好明显下载已近跟不上时代了 所以我觉得花点时间来将其升级为wince6.0的系统,预祝我成功吧!!
2012-03-13 19:23:37 653
转载 如何做支持中文显示的CE6系统
转载至:http://blog.csdn.net/pony_maggie/article/details/5964030网上很多方法实践过发现是不行的,大部分是转来转去. 下面是自己实践过的一个可用方法: 1 备好一个可编译的CE6系统工程, 环境为vs2005 2 打开project-XXX properties, 显示属性配置页面 3 点出l
2012-02-28 11:47:31 521
转载 Wince BSP从5.0移植到6.0(三)
转载至:http://blog.csdn.net/pony_maggie/article/details/5382094作者:小马第三部分是关于触摸屏驱动的移植 1在platform.bib里把原来注释掉的下面两行置为有效.k.touch.dll $(_FLATRELEASEDIR)/DeviceEmulator_touch.dll
2012-02-28 11:37:42 436
转载 Wince 6.0 BSP的移植(二)
转载至:http://blog.csdn.net/pony_maggie/article/details/5321631作者:小马移植外设驱动时, 可以再platform.bib里注释掉其它的外设驱动dll,并修改drivers目录下的dir文件, 移植好一个,就添加一个.这篇文章是关于LCD显示驱动移植的.移植LCD驱动时要注意一点, 因为在OAL层有关于LCD的
2012-02-28 11:34:40 367
转载 Wince 6.0 BSP的移植(一)
转载至:http://blog.csdn.net/pony_maggie/article/details/5321631作者:小马公司的一个项目,要做一个基于CE6.0的应用,无奈手上的板子是5.0的, 本来想节省时间,直接向厂家要一个该板子的6.0的BSP,联系他们的客服说没有这个板子的6.0的BSP,让我自力更生. 截至到写这篇文章时, OAL
2012-02-28 11:33:16 970
sd4.0协议标准完整版汉语翻译
2024-03-27
用TCPIP进行网际互联(第三卷:客户-服务器编程与应用)(Linux POSIX套接字版)-高清书签版
2016-07-05
Linux网络编程smallsh 源码 (可直接运行)
2013-10-23
3个android gallery实例
2013-08-13
TIMER模拟PWM蜂鸣器奏乐(看月亮爬上来)
2011-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人