摘要:
1. 介绍 Linux中,将包括MMC、SD、SDIO统称为MMC子系统 MMC子系统从功能上可分为三个层次 2. 数据结构 MMC中包含的主要数据结构如下 mmc_host主要字段如下 mmc_card主要字段如下 mmc_ios字段如下 mmc_driver字段如下 mmc_bus_ops字段如 阅读全文
摘要:
1. 介绍 MMC,MultiMediaCard,即多媒体卡,是一种非易失性存储器件,有7pin,目前已基本被SD卡代替 eMMC,Embedded Multimedia Card,内嵌式存储器,以BGA方式封装到SOC上;内置主控制器,以实现统一MMC接口 SD,Secure Digital Me 阅读全文
摘要:
1. 介绍 8250是IBM PC及兼容机使用的一种串口芯片; 16550是一种带先进先出(FIFO)功能的8250系列串口芯片; 16550A则是16550的升级版本, 修复了FIFO相关BUG, 也是目前比较常见的串口芯片. 本文介绍的是Xilinx UART 驱动分析, 因为没有找到其data 阅读全文
摘要:
1. 介绍 本文介绍了TTY打开、TTY读和TTY写操作的函数跟踪过程 2. 示例 下面是一个简单的Linux TTY打开和读写过程 3. 打开 open会调用tty_open, 其分析如下: uar_open分析如下 4. 写入 write会调用tty_write, 其分析如下: uart_wri 阅读全文
摘要:
1. UART介绍 UART是一类tty设备, 是一种串行端口终端, 具体可参考<UART接口介绍>在Linux中UART属于tty驱动的一部分, 具体实现包括驱动抽象层和硬件实现层 本文主要介绍了UART驱动抽象层, 代码主要是drivers/tty/serial/serial_core.c 2. 阅读全文
摘要:
1. TTY介绍 TTY(TeleType)指Linux中的一类终端(Terminal)设备, 是一种字符设备 在Linux中, tty可分为如下几类- 串行端口终端(serial port terminal): 指使用计算机串行端口连接的终端设备, /dev/ttySn- 伪终端(pseudo t 阅读全文
摘要:
1. 背景 在<Jasper语音助理介绍>中, 介绍了Linux音频系统, 本文主要介绍了Linux下音频编程相关内容. 音频编程主要包括播放(Playback)和录制(Record), 大概过程简单总结如下:播放: 将音频文件进行解码(Decode)生成PCM数据, 并将其送入音频设备中播出.录制 阅读全文
摘要:
1. 介绍 Jasper是一款基于树莓派的开源语音控制助理, 使用Python语言开发. Jasper工作原理主要是设备被动监听麦克风, 当收到唤醒关键字时进入主动监听模式, 此时收到语音指令后进行语音识别, 然后对得到的文本进行语义内容解析并处理, 然后将处理结果通过语音合成并输出给用户. 其中涉 阅读全文
摘要:
1. 介绍 笔者Raspberry Pi 2 Model B为例介绍 1.1 参数 Raspberry Pi 2 Model B硬件参数如下: 1.2 接口 接口信息如下图所示: 2. 串口 由于RaspberryPi默认是没有显示器的, 为了方便调试笔者购买了USB转TTL模块(3V3) 首先US 阅读全文
摘要:
1. 介绍 OpenWRT是一款第三方路由器固件, 其特别在于开放性, 如它的文件系统可写, 用户可在路由器上安装需要的第三方软件.通过刷入OpenWRT, 我们可以完成如下事情 - DLNA共享 - 私有NAS/私有云存储(Seafile) - ShadowSockFQ - 远程下载(transmission/transmission-web) … 2. 设备选购 由于OpenWRT并非支持所有... 阅读全文
摘要:
1. 介绍 前面介绍了, 但是Nginx是一个提供静态文件访问的web服务 首先我们介绍一下Web服务器, 应用服务器和应用框架的关系 客户端: 浏览器或者app Web服务器: Web服务器是指驻留于因特网上某种类型计算机的程序。当客户端连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)... 阅读全文
摘要:
1. 安装 CentOS 7上Nginx的安装和启动方法如下 # yum install nginx # firewall-cmd --permanent --zone=public --add-service=http # firewall-cmd --permanent --zone=public --add-service=https # firewall-cmd --reload # ... 阅读全文
摘要:
1. 介绍 笔者发现每次登陆云服务器时都提示如下信息 There were xxx failed login attempts since the last successful login. 这让我非常诧异, 明显网络上有人尝试远程登陆云服务器. 2. 检测 首先我们可以使用nmap工具来检测服务器开发了哪些端口注意在另一个Linux主机上运行, 这里设定云服务IP地址为A.A.A.A # nm... 阅读全文
摘要:
1. 简介 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. 2. 安装 安装方法如下: 3. 启动 先要修改启动文件 启动失败解决办法 4. 命令 Redis 客户端的基本语法为 参考:<Redis教程 阅读全文
摘要:
1. 简介 笔者使用的系统是CentOS 7, 默认使用的是mariadb来替代MySQL, 使用上基本一致. 2. 安装 安装方法如下: 启动方案如下: 注意: 安装完成后首次启动默认的root用户密码为空, 可以通过MySQL安全配置向导来进行安全方面的配置--> mysql_secure_in 阅读全文
摘要:
1. 介绍 Flask是一种使用Python 编写的轻量级Web应用框架, 实现了基础的核心, 用extension增加其他功能它的WSGI工具箱采用Werkzeug, 模板引擎则使用Jinja2 2. 使用 2.1 路由 2.2 反向路由 2.3 重定向 2.4 请求和响应 2.5 模板 flas 阅读全文
摘要:
1. 介绍 Web应用是一种基于客户端/服务器的应用程序.客户端通常在Web浏览器中运行, 向服务器发起HTTP/HTTPS请求(Request), 服务器处理请求后返回响应(Response) 2. 框架 这里的Web应用框架指的是Server端的Web框架 Web应用框架通常基于Model-View-Controller(MVC) 不同的语言有各自的实现, 比较流行的Web应用框架如下: C#... 阅读全文
摘要:
1. 介绍 BroadcastReceiver用于接收广播事件(Intent), 是Android四大组件之一 2. 使用 2.1 实现广播接收类 实现一个广播收类继承BroadcastReceiver类, 并覆写onReceive()方法 public class MyBroadcastReceiver extends BroadcastReceiver { @Override ... 阅读全文
摘要:
1. 介绍 SQLite是一款轻型的数据库, 是遵守ACID的关系型数据库管理系统, Android系统已经在框架中适配接口供用户使用. 2. 数据类型 SQLite采用的是动态数据类型, 会根据存入值自动判断.SQLite具有以下五种常用的数据类型: 存储类 描述 NULL NULL 值 INTEGER 带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中 REAL ... 阅读全文
摘要:
1. 介绍 Handler允许向关联线程的消息队列(MessageQueue)发送消息(Message)和可执行对象(Runnable).每个Handler实例都与某个线程(即创建该Handler的线程)及该线程的消息队列所关联 Handler主要有两种用途 - 调度消息和可执行对象在未来某个时间点的处理 - 在其他线程中执行动作 2. 实例 2.1 基本实例 注意: 实例中myRunnable方... 阅读全文