当前位置:  编程技术>综合
本页文章导读:
    ▪python学习1      1.开头加上# coding=gb2312,就可以使用中文了 2.range(1,5)是大于等于1,小于5 3.python多行注释用三个''' ''' adfadf adsfadf adsfadsf ''' 4.单行注释用# 作者:s1102379635 发表于2013-1-11 21:20:27 .........
    ▪Learning ADSP-TS201系列--Flag Pins按键和LED灯       原创作品,转载请注明原作者及地址! by 飞鸿惊雪 http://blog.csdn.net/niyufeng Learning ADSP-TS201系列--索引 1 Learning ADSP-TS201系列--重要参考 2 Learning ADSP-TS201系列--EZ-KIT Lite评估.........
    ▪MySQL slave状态之Seconds_Behind_Master              在MySQL的主从环境中,我们可以通过在slave上执行show slave status来查看slave的一些状态信息,其中有一个比较重要的参数Seconds_Behind_Master。那么你是否明白它的真正含义以及.........

[1]python学习1
    来源: 互联网  发布时间: 2013-11-10
1.开头加上# coding=gb2312,就可以使用中文了
2.range(1,5)是大于等于1,小于5
3.python多行注释用三个'''
'''
adfadf
adsfadf
adsfadsf

'''

4.单行注释用#

作者:s1102379635 发表于2013-1-11 21:20:27 原文链接
阅读:46 评论:0 查看评论

    
[2]Learning ADSP-TS201系列--Flag Pins按键和LED灯
    来源: 互联网  发布时间: 2013-11-10


原创作品,转载请注明原作者及地址!

by 飞鸿惊雪

http://blog.csdn.net/niyufeng




Learning ADSP-TS201系列--索引

1 Learning ADSP-TS201系列--重要参考

2 Learning ADSP-TS201系列--EZ-KIT Lite评估板硬件资源

3 Learning ADSP-TS201系列--Flag Pins按键和LED灯






Learning ADSP-TS201系列--Flag Pins按键和LED灯

好啦,正是开始这个《Learning ADSP-TS201》系列专题。

TS201这款DSP包含了好些硬件资源,具有突出的数据处理能力,其中的重点和难点就是DMA,Link Port以及和他们相联系的中断,还有就是多DSP的MultiProcessor!当然,和ARM外设的控制相比,这些都是小菜一碟啦~


所以,我们由易到难,先把简单的Flag Pins,Interrupt Pins,Timer,SDRAM解决掉,然后再专攻DMA,MultiProcessor,Link Port,最后在研究FLASH MEMORY,把完成的程序代码固化到Flash中然后直接Boot,而不是用仿真器下载程序。


1 电路中的Flag Pins

EZ-KIT Lite评估板上每个DSP都有4个Flag Pins,这是一种可以控制方向(input\output)的管脚。

在评估板上这些管脚有2个接Button按钮,有2个接LED,他们在电路板上的分布如下图,我也标注了DSP A和B:







在上面图中,我已经把按键和LED灯实际名称如(如LED4,SW9)和DSP上的名称(如flag2,flag0)都对应起来,下面这张截图简单介绍了这些Flag Pins的作用:

也就是说,每片DSP上的Flag0和Flag1作为按键Button输入,而Flag2和Flag3作为LED输出。




这个截图也把另两个按键SW4和SW5放上来了,呵呵,这将是下篇文章要介绍的内容啦,中断!





1.1 Flag0和Flag1作为按键

Flag0和Flag1作为按键,当她们初始化为输入后,在没有按下时为低电平(注意中间有个反相器),而按下按键时为高电平。

所以SQSTAT寄存器在按下按键时FLG0或FLG1才为1,这样可以使用判断语句来查询状态,判断是否按下。








1.2 Flag2和Flag3作为LED


Flag2和Flag3作为LED,当她们初始化为输出后,FLAGREG中的FLAG2_OUT或FLAG3_OUT位,对其置位对应的LED才亮,而清零则LED熄灭。










2 Flag Pins的寄存器


四个FLGA3-0管脚,都可配置为输入或输出,系统上电后默认是输入;

1 FLAGREG:(FLAGx_EN =0)输入,(FLAGx_EN =1)输出

2 输出时:FLAGREG中的FLAGx_OUT位,对其置位或清零

3 输入时:SQSTAT中的FLGx位,查看状态。或者使用条件指令中的FLAGx_IN标志。







2.1 FLAGREG寄存器






2.2 SQSTAT寄存器中的FLGx位







3 编程实验


这个程序很简单,第一个实验,直接两个LED灯交替闪烁;

而第二个实验,两个LED灯根据按键Button状态进行交替闪烁,按键的状态判断也只是简单滴利用一个延时~~

程序里面有详细的注释,可以轻易的明白。

如果想用第一个实验,只要把#if 0改为#if 1即可,这样就编译的是实验一的程序而不是实验二了 :)


/*
 *
 * 用于测试Flag Pins
 * flag0,flag1连接按键,应该初始化为输入模式
 * flag2,flag3连接led灯,应该初始化为输出模式
 *
 */


#include<stdio.h>
#include<builtins.h>
#include<sysreg.h>
#include<defts201.h>


#define SET_FLAG_OUT(x) __builtin_sysreg_write(__FLAGREGST, (x) );
#define CLR_FLAG_OUT(x) __builtin_sysreg_write(__FLAGREGCL, (~(x)) );



int main( void )
{
	int i;
	//将FLAG2, FLAG3设为输出模式,用于LED闪烁
	__builtin_sysreg_write(__FLAGREGST, FLAGREG_FLAG2_EN | FLAGREG_FLAG3_EN);
	//将FLAG0, FLAG1设为输入模式,用于按键
	__builtin_sysreg_write(__FLAGREGCL, ~( FLAGREG_FLAG0_EN|FLAGREG_FLAG1_EN) );
	
	
#if 0	/********* 第一个实验,直接两个LED灯交替闪烁 **********/
	while(1) {
		SET_FLAG_OUT(FLAGREG_FLAG2_OUT);
		CLR_FLAG_OUT(FLAGREG_FLAG3_OUT);
		for(i=0; i<8000000; i++);
		SET_FLAG_OUT(FLAGREG_FLAG3_OUT);
		CLR_FLAG_OUT(FLAGREG_FLAG2_OUT);
		for(i=0; i<8000000; i++);
	}
#else

  	/********* 第二个实验,两个LED灯根据按键状态进行交替闪烁 *********/

	static int button0=0, button1=0;
	static int led0=0, led1=0;
	int sqstat=0;
	
	while(1){
		//如果button0按下,反转button0状态
		sqstat = __builtin_sysreg_read(__SQSTAT);
		if( sqstat & ( 1<<SQSTAT_FLG_P) ){	//按下按键为高电平
			for(i=0; i<800000; i++);
			sqstat = __builtin_sysreg_read(__SQSTAT);
			if( sqstat & ( 1<<SQSTAT_FLG_P) ) button0 = ! button0;
		}
		
		//如果button1按下,反转button1状态
		sqstat = __builtin_sysreg_read(__SQSTAT);
		if( sqstat & ( 2<<SQSTAT_FLG_P) ){
			for(i=0; i<800000; i++);
			sqstat = __builtin_sysreg_read(__SQSTAT);
			if(sqstat & ( 2<<SQSTAT_FLG_P) ) button1 = ! button1;
		}
		
		//根据button0状态,点亮/熄灭LED2
		if(button0 == 0){
			CLR_FLAG_OUT(FLAGREG_FLAG2_OUT);
		} else {
			SET_FLAG_OUT(FLAGREG_FLAG2_OUT);
		}
		
		//根据button1状态,点亮/熄灭LED3
		if(button1 == 0){
			CLR_FLAG_OUT(FLAGREG_FLAG3_OUT);
		} else {
			SET_FLAG_OUT(FLAGREG_FLAG3_OUT);
		}
		
		for(i=0; i<800000; i++);
	}
	
#endif

}



     


在放两个图吧,虽然不是这个实验的,但是大体这么个意思。。。















作者:niyufeng 发表于2013-1-11 21:20:20 原文链接
阅读:56 评论:0 查看评论

    
[3]MySQL slave状态之Seconds_Behind_Master
    来源: 互联网  发布时间: 2013-11-10

        在MySQL的主从环境中,我们可以通过在slave上执行show slave status来查看slave的一些状态信息,其中有一个比较重要的参数Seconds_Behind_Master。那么你是否明白它的真正含义以及它是怎么计算的呢?

        在之前我一直误以为Seconds_Behind_Master是表示slave比master落后多少,如果这个值为0的表示主从已经处于一致了(在非同步模式下,现在官方最多也只在5.5中增加了半同步复制)。但是最近我终于认识到之前的错误理解。首先我们需要明白的一点:Seconds_Behind_Master表示slave上SQL thread与IO thread之间的延迟,我们都知道在MySQL的复制环境中,slave先从master上将binlog拉取到本地(通过IO thread),然后通过SQL thread将binlog重放,而Seconds_Behind_Master表示本地relaylog中未被执行完的那部分的差值。手册上的定义:

In essence, this field measures the time difference in seconds between the slave SQL thread and the slave I/O thread.

所以如果slave拉取到本地的relaylog(实际上就是binlog,只是在slave上习惯称呼relaylog而已)都执行完,此时通过show slave status看到的会是0,那么Seconds_Behind_Master的值为0是否表示主从已经处于一致了呢?答案几乎是否定的!为什么几乎是否定的?因为绝大部分的情况下复制都是异步的,异步就意味着master上的binlog不是实时的发送到slave上,所以即使Seconds_Behind_Master的值为0依然不能肯定主从处于一致,这也是我之前强调非同步复制的原因(现在已经有公司在做同步复制了,比如网易自己实现了VSR,Virtual Synchronized Replication,由于同步复制性能较差,所以网易再实现同步复制的同时还打了group commit的补丁)。所以如果我们要以这个参数来估计主从延迟多久的话至少得在一个比较好的网络环境中,这样才能保证几乎master上的binlog都已经发送到slave上。

        上面解释了Seconds_Behind_Master这个值的真正含义,那么它的值到底是怎么计算出来的呢?实际上在binlog中每个binlog events都会附上执行时的timestamp,所以在在确定Seconds_Behind_Master的值时MySQL是通过比较当前系统的时间戳与当前SQL thread正在执行的binlog event的上的时间戳做比较,这个差值就是Seconds_Behind_Master的值。也许你会有疑问那要是两台服务器之间的时钟不一致怎么办?确实会存在这种情况,那么此时这个值的可靠性就不大了,手册上对此也进行了说明:

This time difference computation works even if the master and slave do not have identical clock times, provided that the difference,
computed when the slave I/O thread starts, remains constant from then on. Any changes—including NTP updates—can lead to clock
skews that can make calculation of Seconds_Behind_Master less reliable

        Seconds_Behind_Master的值除了是非负数之外还可能是NULL,它是由如下几种情况导致的:SQL thread没运行/IO thread没运行/slave没有连接到master。

        接下来再简单介绍一下异步复制/半同步复制之间的区别。

        异步复制,master上的操作记录binlog的同时不关心binlog是否已经被slave接收。

        半同步复制,master上的操作记录binlog的同时会关心binlog是否被slave接受。但是由于它的处理逻辑问题可能丢一个事务,如下图所示:


这样的处理流程存在一个问题,当存储引擎提交(storage commit)后,此时如果master挂了那么会存在主从不一致,对于这个问题orczhou好像自己对源码进行了修改更改storage commit的顺序来达到一个增强的半同步复制。

        对Seconds_Behind_Master就解释到这里,希望对你也能有点帮助。


作者:zbszhangbosen 发表于2013-1-11 21:17:35 原文链接
阅读:47 评论:0 查看评论

    
最新技术文章:
▪error while loading shared libraries的解決方法    ▪版本控制的极佳实践    ▪安装多个jdk,多个tomcat版本的冲突问题
▪简单选择排序算法    ▪国外 Android资源大集合 和个人学习android收藏    ▪.NET MVC 给loading数据加 ajax 等待loading效果
▪http代理工作原理(3)    ▪关注细节-TWaver Android    ▪Spring怎样把Bean实例暴露出来?
▪java写入excel2007的操作    ▪http代理工作原理(1)    ▪浅谈三层架构
▪http代理工作原理(2)    ▪解析三层架构……如何分层?    ▪linux PS命令
▪secureMRT Linux命令汉字出现乱码    ▪把C++类成员方法直接作为线程回调函数    ▪weak-and算法原理演示(wand)
▪53个要点提高PHP编程效率    ▪linux僵尸进程    ▪java 序列化到mysql数据库中
▪利用ndk编译ffmpeg    ▪活用CSS巧妙解决超长文本内容显示问题    ▪通过DBMS_RANDOM得到随机
▪CodeSmith 使用教程(8): CodeTemplate对象    ▪android4.0 进程回收机制    ▪仿天猫首页-产品分类
▪从Samples中入门IOS开发(四)------ 基于socket的...    ▪工作趣事 之 重装服务器后的网站不能正常访...    ▪java序列化学习笔记
▪Office 2010下VBA Addressof的应用    ▪一起来学ASP.NET Ajax(二)之初识ASP.NET Ajax    ▪更改CentOS yum 源为163的源
▪ORACLE 常用表达式    ▪记录一下,AS3反射功能的实现方法    ▪u盘文件系统问题
▪java设计模式-观察者模式初探    ▪MANIFEST.MF格式总结    ▪Android 4.2 Wifi Display核心分析 (一)
▪Perl 正则表达式 记忆方法    ▪.NET MVC 给loading数据加 ajax 等待laoding效果    ▪java 类之访问权限
▪extjs在myeclipse提示    ▪xml不提示问题    ▪Android应用程序运行的性能设计
▪sharepoint 2010 自定义列表启用版本记录控制 如...    ▪解决UIScrollView截获touch事件的一个极其简单有...    ▪Chain of Responsibility -- 责任链模式
▪运行skyeye缺少libbfd-2.18.50.0.2.20071001.so问题    ▪sharepoint 2010 使用sharepoint脚本STSNavigate方法实...    ▪让javascript显原型!
▪kohana基本安装配置    ▪MVVM开发模式实例解析    ▪sharepoint 2010 设置pdf文件在浏览器中访问
▪spring+hibernate+事务    ▪MyEclipse中文乱码,编码格式设置,文件编码格...    ▪struts+spring+hibernate用jquery实现数据分页异步加...
▪windows平台c++开发"麻烦"总结    ▪Android Wifi几点    ▪Myeclipse中JDBC连接池的配置
▪优化后的冒泡排序算法    ▪elasticsearch RESTful搜索引擎-(java jest 使用[入门])...    ▪MyEclipse下安装SVN插件SubEclipse的方法
▪100个windows平台C++开发错误之七编程    ▪串口转以太网模块WIZ140SR/WIZ145SR 数据手册(版...    ▪初识XML(三)Schema
▪Deep Copy VS Shallow Copy    ▪iphone游戏开发之cocos2d (七) 自定义精灵类,实...    ▪100个windows平台C++开发错误之八编程
▪C++程序的内存布局    ▪将不确定变为确定系列~Linq的批量操作靠的住...    ▪DIV始终保持在浏览器中央,兼容各浏览器版本
▪Activity生命周期管理之三——Stopping或者Restarti...    ▪《C语言参悟之旅》-读书笔记(八)    ▪C++函数参数小结
▪android Content Provider详解九    ▪简单的图片无缝滚动效果    ▪required artifact is missing.
▪c++编程风格----读书笔记(1)    ▪codeforces round 160    ▪【Visual C++】游戏开发笔记四十 浅墨DirectX教程...
▪【D3D11游戏编程】学习笔记十八:模板缓冲区...    ▪codeforces 70D 动态凸包    ▪c++编程风格----读书笔记(2)
▪Android窗口管理服务WindowManagerService计算Activity...    ▪keytool 错误: java.io.FileNotFoundException: MyAndroidKey....    ▪《HTTP权威指南》读书笔记---缓存
▪markdown    ▪[设计模式]总结    ▪网站用户行为分析在用户市场领域的应用
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3