Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux应用程序开发示例:LED灯定时闪烁

Linux应用程序开发示例:LED灯定时闪烁

Linux应用程序开发示例:LED灯定时闪烁一、开发平台:beaglebone black二、应用层代码:??先建立文件目录?下面给出代码:三、编译代码?四、运行代码?可以观察到led灯在不断的闪烁。五、分析下面进入/sys/class/gpio目录下观察?我们可以知道,基本上Linux对gpio口的操作都位于这个文件目录下。这个文件可以设置高低电平、输入输出、边沿检测、以及数值等。这个应该是linux定义的标准驱动接口文件。本文永久更新链接地址:http...
C#设计模式-中介者模式

C#设计模式-中介者模式

在现实生活中,有很多中介者模式的身影,例如QQ游戏平台,聊天室、QQ群和短信平台,这些都是中介者模式在现实生活中的应用,下面就具体分享下我对中介者模式的理解。一、 中介者(Mediator)模式从生活中的例子可以看出,不论是QQ游戏还是QQ群,它们都是充当一个中间平台,QQ用户可以登录这个中间平台与其他QQ用户进行交流,如果没有这些中间平台,我们如果想与朋友进行聊天的话,可能就需要当面才可以了。电话、短信也同样是一个中间平台,有了这个中间平台,每个用户都不...
C#设计模式-迭代器模式

C#设计模式-迭代器模式

一、 迭代器(Iterator)模式迭代器是针对集合对象而生的,对于集合对象而言,必然涉及到集合元素的添加删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作也放在集合对象中,但这样的话,集合对象就承担太多的责任了,面向对象设计原则中有一条是单一职责原则,所以我们要尽可能地分离这些职责,用不同的类去承担不同的职责。迭代器模式就是用迭代器类来承担遍历集合元素的职责。迭代器模式提供了一种方法顺序访问一个聚合对象(理解为集合对象)中各个元素,而又无...
C#设计模式-模板方法模式

C#设计模式-模板方法模式

提到模板,大家肯定不免想到生活中的“简历模板”、“论文模板”、“Word中模版文件”等,在现实生活中,模板的概念就是——有一个规定的格式,然后每个人都可以根据自己的需求或情况去更新它,例如简历模板,下载下来的简历模板的格式都是相同的,然而我们下载下来简历模板之后我们可以根据自己的情况填充不同的内容要完成属于自己的简历。在设计模式中,模板方法模式中模板和生活中模板...
C#设计模式-代理模式

C#设计模式-代理模式

在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象,然后客户端只需要访问代理对象,由代理对象去帮我们去请求目标对象并返回结果给客户端,这样的一个解决思路就是今天要介绍的代理模式。一、 代理(Proxy)模式代理模式按照使用目的可以分为以下几种:远程(Remote)代理:为一个位于不同的地址空间的对象提...
C#设计模式-享元模式

C#设计模式-享元模式

在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严重,然而享元模式可以解决这个问题,下面具体看看享元模式是如何去解决这个问题的。一、 享元(Flyweight)模式在前面说了,享元模式可以解决上面的问题了,在介绍享元模式之前,让我们先要分析下如果去解决上面那个问题,上面的问题就是重复创建了同一个对象,如果让我们去解...
Java中防止表单重复提交

Java中防止表单重复提交

表单的重复提交: 没有完整的进行一次,先请求表单页面->再提交表单过程而完成数据提交造成的根本原因: 没有完整的进行一次,先请求表单页面->再提交表单过程.造成重复提交的现象:由于服务器缓慢或网络延迟的原因,重复点击提交按钮.已经提交成功,刷新成功页面(forward)(请求转发).已经提交成功,通过回退,再次点击提交按钮注意:回退后,刷新表单页面,重新再提交,这时,不是重复提交,而是发送新的请求,在Firefox下,重复提交到同一个地址的操作...
Node.js 事件循环

Node.js 事件循环

Node.js 事件循环Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数.事件驱动程序Node.js...
Matlab 高斯_拉普拉斯滤波器处理医学图像

Matlab 高斯_拉普拉斯滤波器处理医学图像

前言:本程序是我去年实现论文算法时所做。主要功能为标记切割肝脏区域。时间有点久,很多细节已经模糊加上代码做了很多注释,因此在博客中不再详述。NOTE: 程序分几大段功能模块,仔细阅读,对解决医学图像还是有一定的借鉴意义想借鉴本文的一定要仔细阅读代码和注释,中间有人机交互部分,空跑会抛异常.dcm数据,有兴趣的可以下载,实测一下代码。dcm数据下载地址:Linux公社资源站下载:----------------------------------------...
Quartz实现任务调度

Quartz实现任务调度

Quartz框架核心概念 Quartz对任务调度进行了高度抽象,提出了3个核心概念,并在org.quartz包中通过接口和类进行了描述。 任务:就是执行的工作内容。Quartz提供Job接口来支持任务定义 触发器:定义触发Job执行的时间触发规则。Quartz提供Trigger类及其子类支持触发器功能, 调度器:Quartz提供了Scheduler接口,将工作任务和触发器绑定,保证任务可以在正确的时间执行Quartz框架的使用流程 在系统中,对员...
Linux设备管理_kobject_kset_kobj_type

Linux设备管理_kobject_kset_kobj_type

Linux内核大量使用面向对象的设计思想,通过追踪源码,我们甚至可以使用面向对象语言常用的UML类图来分析Linux设备管理的"类"之间的关系。这里以4.8.5内核为例从kobject,kset,kobj_type的分析入手,进而一探内核对于设备的管理方式container_of宏这个宏几乎是linux数据结构的基础,Linux中的链表与传统的链表不同,其链表的节点本身并不包含任何数据,任何想要插入到链表的数据只需要包含一个事先写好的节点//include...
Linux网络驱动--snull

Linux网络驱动--snull

snull是《Linux Device Drivers》中的一个网络驱动的例子。这里引用这个例子学习Linux网络驱动。因为snull的源码,网上已经更新到适合最新内核,而我自己用的还是2.6.22.6比较旧的内核。而网上好像找不到旧版的snull。因此结合《Linux Device Drivers》把最新的snull例子移植到2.6.22.6内核中。移植也相对简单,这里也提供移植好的代码。估计不少网友看到《Linux Device Drivers》的网络...
SPI子系统之驱动SSD1306 OLED

SPI子系统之驱动SSD1306 OLED

接触Linux之前,曾以为读源码可以更快的学习软件,于是前几篇文章都是一边读源码一边添加注释(http://www.linuxidc.com/Linux/2016-10/136246.htm),甚至精读到每一行代码,实际上效果并不理想,看过之后就忘记了。主要原因是没理解透程序架构,各个模块之间的关系,如何联系在一起,再加上没有实例验证。后来逐渐发现,理解框架能达到事半功倍的效果,理解框架之后,反而代码也更容易看懂,甚至可以猜部分代码的作用,印象更加深刻。理...
深入理解 Spring 事务原理

深入理解 Spring 事务原理

一、事务的基本原理Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:获取连接 Connection con = DriverManager.getConnection()开启事务con.setAutoCommit(true/false);执行CRUD提交事务/回滚事务 con.commit() / con.rollback();关闭连接 c...
Linux设备管理(二)_从cdev_add说起

Linux设备管理(二)_从cdev_add说起

我在Linux字符设备驱动框架一文中已经简单的介绍了字符设备驱动的基本的编程框架,这里我们来探讨一下Linux内核(以4.8.5内核为例)是怎么管理字符设备的,即当我们获得了设备号,分配了cdev结构,注册了驱动的操作方法集,最后进行cdev_add()的时候,究竟是将哪些内容告诉了内核,内核又是怎么管理我的cdev结构的,这就是本文要讨论的内容。我们知道,Linux内核对设备的管理是基于kobject的(参见Linux设备管理(一)_kobject_ks...
<< 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 >>