- 博客(78)
- 资源 (3)
- 收藏
- 关注
转载 STM32菜鸟成长记录---窗口看门狗
stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。 独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。图1 窗口看门狗的
2015-05-06 00:40:19 574
转载 SD卡中FAT32文件格式快速入门(图文详细介绍)
说明:MBR :Master Boot Record ( 主引导记录) DBR :DOS Boot Record ( 引导扇区) FAT :File Allocation Table ( 文件分配表) 硬件:本文SD卡为Kingston 4GB,FAT32格式,簇大小4KB,每扇区512字节。第一章 硬盘结构与SD卡结构1.1 硬盘介绍1.1硬盘
2015-04-09 16:49:51 791
转载 android的m、mm、mmm编译命令的使用
android的m、mm、mmm编译命令的使用android源码目录下的build/envsetup.sh文件,描述编译的命令- m: Makes from the top of the tree. - mm: Builds all of the modules in the current directory. - mmm: Buil
2015-01-06 17:36:19 409
转载 init.rc 状态服务器相关语法分析
状态服务器相关:在init.c 的main函数中启动状态服务器。property_set_fd = start_property_service();状态读取函数:Property_service.c (system\core\init)const char* property_get(const char *name)Properties.c (system\core\l
2015-01-06 17:35:31 403
转载 Android 的启动流程
Android 的启动流程 Android 根文件系统启动过程。在Android系统启动时,内核引导参数上一般都会设置“init=/init”, 这样的话,如果内核成功挂载了这个文件系统之后,首先运行的就是这个根目录下的init程序。init程序源码在Android官方源码的system/core/init中,main在init.c里。我们的分析就从main开始。ini
2015-01-06 17:33:42 380
转载 P沟道mos管作为开关的条件(GS >GS(TH))
P沟道mos管作为开关,栅源的阀值为-0.4V,当栅源的电压差为-0.4V就会使DS导通,如果S为2.8V,G为1.8V,那么GS=-1V,mos管导通,D为2.8V如果S为2.8V,G为2.8V,VGSw那么mos管不导通,D为0V,所以,如果2.8V连接到S,要mos管导通为系统供电,系统连接到D,利用G控制。那么和G相连的GPIO高电平要2.8-0.4=2.4
2015-01-06 17:32:57 1146
转载 增强型N沟道场效应管(MOSFET)的电池反接保护电路
功率场效应管(MOSFET)典型应用电路 1.电池反接保护电路 电池反接保护电路如图9所示。一般防止电池接反损坏电路采用串接二极管的方法,在电池接反时,PN结反接无电压降,但在正常工 作时有0.6~0.7V的管压降。采用导通电阻低的增强型N沟道场效应管(MOSFET)具有极小的管压降(RDS(ON)×ID),如Si9410DY的RDS(ON)约为0.0
2015-01-06 17:30:07 1972
转载 防反接保护电路
防反接保护电路1,通常情况下直流电源输入防反接保护电路是利用二极管的单向导电性来实现防反接保护。如下图1示:这种接法简单可靠,但当输入大电流的情况下功耗影响是非常大的。以输入电流额定值达到2A,如选用Onsemi的快速恢复二极管 MUR3020PT,额定管压降为0.7V,那么功耗至少也要达到:Pd=2A×0.7V=1.4W,这样效率低,发热量大,要加散热器。2
2015-01-06 17:27:57 630
转载 ucos II 创建第一个任务之二
Ucos II 创建第一个任务之二下面具体讲解下任务创建的过程下图就是创建任务函数的实现程序。INT8U OSTaskCreate (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio){ void *psp;
2014-12-04 10:24:05 385
转载 ucos II 创建第一个任务之一
Ucos II创建第一个任务 我们已经从远处欣赏过ucos II 的身材,现在可以近距离地欣赏Ucos II性感的局部了。 任务是什么?有一句话:CPU不同的时刻段总是在执行着优先级最高的任务。所以CPU总是在不同的任务间切换。任务好比linux中的进程。有c写过单片机程序的人是知道函数的.。在ucos II 世界里,任务就是一个大箩筐,框着一个或者好多
2014-12-04 10:06:49 395
转载 ucos II 内核学习之七:内存管理
Ucos II 内存管理 在mcu21的项目里,暂时还没用到内存管理。不过还是有必要学习一下的。 为了消除内存碎片,ucos II 把连续的大块内存按分区来管理。每个分区中包含有整数个大小相同的内存块。 类似每个任务对应一个任务控制块,每个事件对应一个事件控制块,ucos II里每个内存块也是对应一个内存控制块。内存控制块是一个数据结构,定义如下:
2014-12-04 09:50:00 466
转载 ucos II 内核学习之六:ucos II初始化及启动
ucos II内核学习之三:ucos II初始化及启动 以下是我项目中主函数的程序现在解释下程序编写的依据和实现过程。ucos II 里,在创建一个任务(或者调用其它系统服务之前),是需要先初始化系统的,初始化ucos II需要调用函数OSInit()。调用函数OSInit()的作用是什么?主要实现以下几个功能。1. 建立空闲任务及统计任务。2.
2014-12-04 09:40:59 474
转载 ucos II 内核学习之五:时钟节拍
ucos II 内核学习之二 :时钟节拍ucos II 里,时钟节拍就好比是人的心脏一样重要,。它对于CPU能顺利在各任务间切换有着至关重要的作用。Ucos II 需要用户提供时钟源,在muc21项目了,我使用了定时器0作为时钟源。使用时钟源有一个特别需要注意的地方:用户必须在多任务系统启动以后再开启时钟节拍器,也就是在调用OSStart()之后。Ucos II中的时钟节拍
2014-12-04 09:20:44 530
转载 ucos II 内核学习之四:任务延时函数
Ucos II 任务延时函数 编写过单片机程序的都知道,延时函数是经常被用到的。 在ucos II 里,系统也提供了这样的延时函数。一个是大众版的OSTimeDly(),一个是精致版的OSTimeDlyHMSM()。 萝卜青菜,各有所爱,随你怎么选。 这两者的区别是,OSTimeDly()的延时时间是以节拍数来衡量的,OSTimeDlyHMSM()的延时时间则
2014-12-04 09:00:08 464
转载 ucos II 内核学习之三:任务调度
ucos II 内核学习之一 :任务调度 学校的教学方式多是先让你学原理,再应用它。Muc21则不喜欢这种方式,依然记得在学校枯燥无味地学一大堆理论,更郁闷的是不知道是应用在什么地方。 Mcu21喜欢先学会用它了,然后再去了解它的原理。对ucos II也一样,当我用过之后,再去看它的内核,或许理解起来会更容易。 实现任务切换,需要调用函数OSSched()。
2014-12-03 17:52:37 405
转载 ucos II 内核学习之二:任务控制块
前面的学习已经了解过任务控制块。知道任务在创建的时候,任务控制块会被初始化。任务控制块是一个数据结构,当任务的CPU使用权被剥夺时,ucos II用它来保存该任务的状态。当任务重新得到CPU使用权时,任务控制块能确保任务从当时被中断的那一点丝毫不差地继续执行。OS_TCBs全部驻留在RAM中。 任务控制块的定义程序如下所示: #if OS_TA
2014-12-03 15:07:01 607
转载 ucos II 内核学习之一:任务状态及任务控制块
ucos II 内核学习之一:任务状态及任务控制块一个任务被创建之后,可以处于以下五种状态之一。这五种状态分别是:1. 睡眠状态2. 就绪状态3. 等待状态4. 中断服务状态5. 执行状态下面简单介绍下各状态的含义及各状态切换的方法。 睡眠状态:睡眠态(DORM
2014-12-03 14:49:14 589
转载 ucos-ii任务状态介绍
一个任务通常是一个无限的循环。一个任务看起来像其它的C函数一样,有函数返回类型,任务返回类型必须定义为void型,有形式参数变量,但是任务是绝不会返回的。任务可以在一次执行完毕之后被删除,并不是任务代码被删除,只是内核不会再理会该任务的代码,该任务再也不能运行了。 RTOS内核控制下的任务状态装换上,在任一给定时刻,任务状态一定是在这六种状态之一。
2014-12-03 14:42:01 1035
转载 低功耗设计
与初学者谈低功耗设计(ZT 作者:沈洁) 降低功耗不光能够大大的节约电能还能简化电源部分的设计,甚至可以用于手持设备上面使用,这些都已经越来越成为未来产 品的设计方向了^_^ 1 降低功耗从MCU选型开始,一开始选型的时候就应该考虑选择低功耗的MCU比如MSP430一类的为低功耗设计的CPU^_^ 强烈不建议使用51一方面是因为51速度慢,另外一方面是因为51的IO是有上拉电阻的
2014-12-01 13:45:02 444
转载 IAR for MSP430 关于添加自定义头文件的两种方法 .
IAR for MSP430 关于添加自定义头文件的两种方法上次编写关于430的程序还是在一年半前,再次使用时新版本的IAR5.31时发现又不会添加头文件了,想想当时用的时候也遇到过类似问题,最后也不知是如何解决的,在利用workspace栏添加时,倒也能添加,只是不再main分目录下,即便包含了xxx.h文件,编译时仍然会提示“can no find xxx.h”。于是在网上搜了一下有关I
2014-11-02 18:03:11 633
转载 IAR建立CC2530工程的设置问题及生成.hex文件 .
这篇是转载过来的,其实设置都差不多:利用IAR建完一个工程后,进行设置如下:这里以CC2430为例子,CC2530设置也差不多。 选择 Project 菜单下的Options 配置与 CC2430 相关的选项。1、General Options选项,按下图配置Target标签,选择Code model 和Data model,以及其它参数。 a、单击 Derivative
2014-11-02 14:57:16 824
转载 AS3933唤醒帧解释
AS3933唤醒帧解释 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 现在在做一个基于AS3933的唤醒激活系统,分为A,B两个设备.A设备需要产生125KHz信号,B设备上有AS3933芯片,AS3933接收A设备产生的125KHz信号,然后激活唤醒MCU开始工作. AS3933的唤醒机制
2014-11-01 21:28:35 1310 1
原创 Source insight上修改samba共享ubuntu上内核源程序文件弹出"Confirm by typing ‘yes' below"、"has been changed outside of
在用source insight阅读编写内核驱动
2014-09-26 17:18:00 1986
转载 rmmod: chdir(/lib/modules): No such file or directory 解决方法 (转)
rmmod: chdir(/lib/modules): No such file or directory在编写内核模块化驱动后,要用insmod 模块名.ko来加载该驱动,然后用rmmod 模块名(注:没有.ko)来卸载刚刚加载的模块,可是就在这个时候你可能会遇到如下错误: rmmod: chdir(/lib/modules): No such file or directory
2014-09-24 23:41:41 778
转载 Linux内核I2C子系统驱动(一)
I2C子系统驱动(一)一、I2C体系结构 Linux的I2C体系结构分为3个组成部分:I2C核心、I2C总线驱动、I2C设备驱动,如下图所示。I2C核心提供总线驱动和设备驱动的注册、注销方法,algorithm;I2C总线驱动对硬件体系结构中适配器的实现,主要包括适配器i2c_adapter、适配器通信算法i2c_algorithm,如果CPU集成了I2C控制器并且linux内核
2014-09-05 20:17:20 343
转载 linux下的简易有道字典
linux下的简易有道字典说实话在win下有的有道字典的确很不错,特别是看一些英文资料的时候(咱英语不行),就特别有帮助。不过现在在linux下,就在想有没有linux下的有道字典呢,在网上查了一下,失望而归。。。但是找到了有人有python写的一个简易的linux版有道字典,还是不错了。可以在http://sourceforge.net/projects/yodao-
2014-06-23 16:16:07 423
转载 Linux下*.tar.bz2等文件如何解压
Linux下*.tar.bz2等文件如何解压如果tar不支持j这个参数就先用 bzip2 -d xxx.tar.bz2 把它解压成.tar文件,然后再用 tar xvf xxx.tar 拆包。压缩解压 linux下怎么解后缀名是gzip的文件? 1.以.a为扩展名的文件: #tar xv file.a 2.以.z为扩展名的文件: #uncom
2014-06-23 15:05:37 462
转载 tcflush() 的用法
tcflush() 丢弃要写入引用的对象,但是尚未传输的数据,或者收到但是尚未读取的数据,取决于 queue_selector 的值: TCIFLUSH 刷新收到的数据但是不读 TCOFLUSH 刷新写入的数据但是不传送 TCIOFLUSH 同时刷新收到的数据但是不读,并且刷新写入的数据但是不传送通俗地说就是将输出缓冲器清空,把输入缓冲区清空。缓冲区里的数据都废弃
2014-06-11 15:27:55 758
转载 tcgetattr
tcgetattr目录1头文件2函数原型3说明4范例1头文件#include2函数原型int tcgetattr(int fd, struct termios *termios_p);3说明tcgetattr函数用于获取与终端相关的参数。参数fd为终端的文件描述符,返回的结果保存在termios结构体中,该结构体一般包括如
2014-06-11 15:24:42 532
转载 C语言 EOF是什么?
我学习C语言的时候,遇到的一个问题就是EOF。它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。比如,下面这段代码就表示,如果不是文件结尾,就把文件的内容复制到屏幕上。 int c; while ((c = fgetc(fp)) != EOF) { putc
2014-06-11 10:21:57 510
转载 getopt函数的使用
作者写得很好。每一天你都在使用大量的命令行程序,是不是感觉那些命令行参数用起来比较方便,他们都是使用getopt来实现的。在Linux下使用getopt写程序是一种比较cool的事情,下面来简单的介绍一下getopt的使用。=== getopt使用 ===在讨论参数处理之前,我们先明确两个概念:选项、选项参数gcc -g -o test test.c我们经常使用上面
2014-06-07 10:00:07 394
转载 perror 的用法
头文件 #includestdio.h> #include//注意 不可以掉了这个头文件,perror是包含在这个文件里的//定义函数 void perror(const char *s); perror ("open_port");函数说明 perror ( )用 来 将 上 一 个 函 数 发 生 错 误 的 原 因 输 出 到 标 准 设
2014-06-07 09:46:32 465
转载 平衡二叉树 之 AVL树
AVL树是最先发明的自平衡二叉查找树。AVL树以其发明者前苏联学者 G.M. Adelson-Velsky 和 E.M. Landis 名字而命名,他们在1962年的论文《An algorithm for the organization of information》中发表了它。[参考WiKI]AVL树中,一个非常重要的概念为平衡因子(Balance factor),对于任意节点 x ,其平
2014-06-04 17:56:25 434
转载 平衡二叉树 之 红黑树
1. 红黑树的特性Red-Black Tree ( RBT)也是一种自平衡二叉树,其统计性能要好于 AVL树 。它是在1972年由 鲁道夫·贝尔 发明的,它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的。[参考Wiki]一般的,红黑树同时满足以下
2014-06-04 17:54:27 379
转载 C函数之memset()函数用法
C函数之memset()函数用法1.功能:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针2. 需要的头文件 or 3.函数原型: void *memset(void *s,int ch, unsigned n)4.memset可以方便的清空一个结构类型的变量
2014-06-03 10:14:03 479
转载 判断一个系统的大小端函数
判断一个系统的大小端函数小端:低地址存放地位数据;大端:低地址存放高位数据;而网络中传输是用大端。用代码实现大小端利用了共用体的原理实现判断是比较简单的一个方法:[html] view plaincopyprint?#include stdio.h> union n{ int a; char b; }; int main
2014-06-02 17:26:34 520
转载 Ubuntu中软件的基本安装和卸载,以及WINE的使用
(1)软件的安装 Linux下软件的安装主要有三种不同的形式。第一种安装文件名为xxx.tar.gz;另一种安装文件名为xxx.i386.rpm;第三种是xxx.deb文件。以第一种方式发行的软件多为以源码形式发送的;第二种方式则是直接以二进制形式发送的;第三种则是与Debain GNU/Linux关联密切的格式包。A,对于第一种,安装方法如下:1,解压缩,用ls命令可以看到解压缩后
2014-04-09 17:52:58 502
转载 Kubuntu 运行 qq2012 (QQ2012 for linux)
自从有了Wine,妈妈再也不用担心我的学习。。。 哈哈不过说实话,通过Wine安装QQ以及其它windows软件,确实是目前我知道的最靠谱的方法。在此之前,我尝试过LumaQQ,libqq,python-qq,但终觉得不爽。但幸亏有Wine,刚在上面装了QQ2012,该有的功能一个都不差。如果有同样困扰的童鞋,可参考:http:/
2014-03-16 19:26:29 795
转载 网络视频监控P2P解决方案
网络视频监控P2P解决方案 一.摘要本文分析了日益增长的民用级别家庭和个人网络视频监控市场的需求特点,并给出了一种经济可行易于大规模部署的P2P解决方案。由于篇幅有限,本文只给出了方案的思路,未对更深入的技术细节做详细的论述,有兴趣的朋友可以继续深入研究。二.关键词IPCAM, P2P,NAT, STUN, TURN, ICE, PJSIP, OPEN
2014-03-13 22:45:12 737
转载 算法的时间性能分析
算法的时间性能分析(1)算法耗费的时间和语句频度 一个算法所耗费的时间=算法中每条语句的执行时间之和。 每条语句的执行时间=语句的执行次数(即频度(Frequency Count))×语句执行一次所需时间。 算法转换为程序后,每条语句执行一次所需的时间取决于机器的指令性能、速度以及编译所产生的代码质量等难以确定的因素。 若要独立于机
2013-11-12 17:46:11 1216
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人