自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

C_Aya的博客

记录一点一滴的学习

  • 博客(64)
  • 收藏
  • 关注

转载 USB 3G上网卡讲解之三

USB 3G卡热插拔那些事4——pppd在上一节中我们知道3G卡设备驱动已经加载好了,并且和ttyUSB*已经绑定成功,意味着我们可以拨号了,和3G卡内部3G模块通信了,而我们知道3G模块通信是tty设备,通过串行设备,这里和3G卡的两种工作模式相吻合—moden模式. 首先我们这里先给出3G工作原理图: 我们万事俱备只欠东风了,就是pppd拨号了,当然pppd的源码自己可以去网上下载最

2017-09-06 16:31:53 2717

转载 USB 3G上网卡讲解之二

USB 3G卡热插拔那些事3——usb serial驱动上一节我们已经把3G识别出来并且可以工作了,具体3G卡拨号这一块我们稍后会讲到,这里先提下,首先就是pppd拨号程序,可以网上下载最新版源码自己编译安装,我是利用evdo拨号(本人是用的SIM5360E,WCDMA/GSM,即联通2G/3G),当然还有其他方式。这里是用户空间如何建立ppp连接,在内核层就是ppp协议以及tty模块,在往下就是w

2017-09-06 14:29:29 657

转载 USB 3G上网卡讲解之一

转载了一个比较详细的关于USB 3G上网卡的讲解,原文地址: http://blog.chinaunix.net/uid-20786208-id-3157021.htmlUSB 3G卡热插拔那些事1——原理框架这里我们先讲讲USB热插拔事件的处理工作。—–Khubd守护进程。 -Khubd守护进程它是一个守护进程,来检查usb port的事件通知HCD和usb core,然后做相应的处理。 驱

2017-09-06 14:09:49 1461

原创 驱动学习——Linux下浅析USB转串口驱动的流程

我们知道,Linux对于USB设备的支持是十分强大的,USB接口的无线网卡、USB的摄像头、USB键盘、鼠标等等。做些许代码修改,内核选项选中支持后,即可使用这些设备。但是我们要清楚,越是简单的使用,其背后就越是复杂的设计。粗略翻了翻《Linux 那些事儿之我是U盘》,才意识到Linux的USB host驱动有多复杂,不是两三天就能读懂的。( T^T..)。 这篇博文仅分析一下从内核初始化到USB

2017-09-01 18:56:43 6572 2

原创 驱动学习回顾——按键(Button)驱动的理解和总结

当时在学习按键驱动时,便觉得其中有几个点是比较难理解的,在整体上自己感到并没有很好地掌握。现在经过了一段时间地学习,再将按键驱动里的疑难点加以理解之后,总结记录一下。 关于驱动代码之前已经给出,点击:这里,但只是关于代码语句的注释,下面将从功能块上着重分析这个驱动。一、中断也许现在提起中断,都可以联想到这个图: 中断,本质上就是一种特殊的信号,由某个设备发个CPU,CPU接到这个信号后,操作

2017-08-24 16:53:22 1880

原创 驱动学习回顾——platform总线驱动-结合LED实例分析

前一篇文章总结了Linux下的bus设备模型,实际上,我们在编程过程中,并不需要自己来创建总线,Linux已经为我们实现了诸如platform总线、USB总线、I2C总线等等。 而接下来要学习总结的platform总线有点“特别”,与USB、I2C、SPI等物理总线不同,它是一条虚拟总线。像USB设备、I2C设备都会有自己对应类型的总线进行挂载,从而与CPU通信。但是在嵌入式系统中,并不是所有的设

2017-08-21 20:08:30 1438

原创 驱动学习回顾——Linux下bus设备模型

关于Linux的驱动学习有三个点是应该掌握的,即:总线,驱动,设备。不管是一些物理总线(如:I2C,SPI等)的抽象,还是为了增加设备“容量”而定义的虚拟总线(plat-from),都是围绕着这三个进行。即:一个符合Linux设备驱动模型的device和device_dvrier都挂在一个bus上,由bus来进行两者匹配,进行双向绑定。下面简单地给出自己简单的学习过程。一、总线总线这个概念在内核中在

2017-08-21 13:14:06 616

原创 fl2440模块学习——3G拨号上网

本篇学习在fl2440开发板上添加3G无线拨号上网模块,实现上网。 所使用的3G模块为:SIMCOM的 SIM5360E,可以支持WCDMA/GSM,即联通2G/3G,移动2G。测试用的是联通卡。 先了解一下: WCDMA 是英文Wideband Code Division Multiple Access(宽带码分多址)的英文简称,是一种第三代无线通讯技术。目前是由国内的联通在做; GSM(

2017-05-30 16:27:12 1850

原创 fl2440模块学习——RT3070无线网卡SoftAP模式实现路由器功能

上一篇博文记录了fl2440添加了RT3070作为STA模式,并成功连接路由器上网。 这篇则记录第二种模式:SoftAP模式。以开发板fl2440作为一个路由器,并使自己的手机、笔记本电脑连接到这个“路由器”上网。在这里我们会用到几个软件hostapd、udhcpd、iptables。基于内核的mac80211驱动框架来实现。一、内核配置 make之后烧录到开发板。把开发板用网线连接一个路由

2017-05-25 20:53:38 1321

原创 fl2440模块学习——添加RT3070实现无线上网

最近学习了在fl2440开发板上添加了RT3070网卡,并通过连接路由器上网,在此记录一下。首先预备一下一些有关的网络知识: 1、计算机网络->无线网络的几种常见标准: IEEE802.11a:使用5GHz频段,传输速度54Mbps,与802.11b不兼容; IEEE 802.11b:使用2.4GHz频段,传输速度11Mbps; IEEE802.11g:使用2.4GH

2017-05-23 19:46:01 791

原创 fl2440——Linux下I2C驱动体系

初学I2C的时候,因为第一次接触到这么一种驱动体系,与之前学习的普通字符设备驱动、platform驱动还是有一些区别的。在看内核的I2C有关源代码的时候确实感到不太能理清楚它的框架,还好网上的大神们分享的知识让我学到了很多。因此现在先对I2C有一个大致的学习,往后在做到相关的项目时再来加深、巩固。1、I2C基础知识1.1 概述IIC (也称I2C)即Inter-Integrated Circuit(

2017-05-05 14:19:21 521

原创 fl2440——内核自带LED的使用

在之前的学习中,学习了led普通字符设备以及platform总线的led。其实在linux的内核中,已经有了对s3c24xx的led支持,我们只要稍作修改便可以使能它。一、添加内核支持make menuconfig Device Drivers ---> [*] LED Support ---> 将如上选项选上即可。二、代码修改想查看自带的代码可以到[tangbin@l

2017-04-22 14:01:53 538

原创 fl2440——移植USB驱动、内核添加USB支持、U盘挂载

关于USB的基础知识可以参考这篇博文:http://blog.csdn.net/u012507643/article/details/52932578 USB的协议还是比较复杂的,有空希望能了解一下,在这仅记录学习移植过程。一、修改代码vim arch/arm/mach-s3c2440/mach-smdk2440.c 添加头文件: 添加USB init函数: 在smdk2440_ma

2017-04-20 19:55:18 1119

原创 fl2440——驱动学习-ADC驱动

硬件描述: S3c2440有一个10-bit的CMOS ADC 模数转换器,支持8个模拟通道输入,10位的分辨率,最高速度可达500KSPS(500 千次/每秒)。 fl2440上的原理图: 从图中可知:模拟ADC,包含了2部分功能,一部分是触屏功能,另一部分就是普通ADC功能,分别可以产生INT_TC和INT_ADC 两个中断。8个AIN模拟输入(A[3:0],YM,YP,XM,XP

2017-04-09 20:02:56 468

原创 fl2440——Platform_Button实例

/********************************************************************************* * Copyright: (C) 2017 TangBin<[email protected]> * All rights reserved. * * Filena

2017-04-04 15:33:41 477

原创 fl2440——驱动学习-Platform_Button驱动代码分析

#include "s3c_driver.h"#define DRV_AUTHOR "Tang bin"#define DRV_DESC "S3C24XX button driver"/* Driver version*/#define DRV_MAJOR_VER

2017-04-04 15:29:04 615

原创 fl2440——Platform-LED实例

/********************************************************************************* * Copyright: (C) 2017 TangBin<[email protected]> * All rights reserved. * * Filena

2017-03-31 12:59:50 420

原创 fl2440——驱动学习-LED测试程序

前面已经记录学习了LED驱动程序的代码分析,并且成功将驱动模块加载到了开发板,现在就可以进行LED应用程序的测试啦! 测试代码如下:/*-------LED流水灯测试程序-------*/#include <stdio.h>#include <stdarg.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#i

2017-03-28 19:21:33 662 1

原创 fl2440——驱动学习-LED驱动程序代码分析

1、驱动入口函数接下来从Linux驱动的入口函数module_init(s3c_led_init);开始学习。可以看到这是由s3c_led_init开始。函数如下:static int __init s3c_led_init(void) /*一般用__init修饰的变量或者函数会编译到专门的一个段里面去,这个段的数据和函数只有在kernel初始化的时候会被调用,以后一定不会被使用,kernel可

2017-03-27 18:47:19 812

原创 fl2440——驱动入门,hello world!

如同C语言的学习一样,入门是从hello world开始的,现在学习驱动设备也选择从这里开始吧! ^_^ 先贴上代码:/********************************************************************************* * Copyright: (C) 2017 TangBin<[email protected]>

2017-03-26 14:51:14 687

转载 fl2440——DS18B20 驱动编写

转载自:http://blog.csdn.net/zqixiao_09/article/details/50973969 供学习之用!对驱动工程师而言,时序分析的意思是让芯片之间的访问满足芯片手册中时序图信号的有效的先后顺序、采样建立时间、保持时间的要求,通过时序来达到数据传输和硬件控制的目的。 嵌入式开发平台:mini2440 DS18B20 所用GPIO:S3C2410_GPF(3)一、D

2017-08-20 16:47:34 631

原创 Linux——Shell使用学习

Shell脚本是个十分便捷的东西,在日常工作中能在某种程度上提高我们得工作效率。Shell是一个命令解析器,简单来讲就是把各类命令丢到里面,从而可以使程序一次性执行,它不需要编译就可以直接执行。因此,使用Shell来进行一些重复性的工作,一些批量处理的工作等都是很高效的,为我们节省不少时间。Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、

2017-08-15 21:25:23 900

原创 C——冒泡排序、快速排序,选择排序

在编程中, 排序是数据处理的重要内容。排序的方法有很多种,根据序列的规模以及数据处理的需求,所采用的方法也不同。在这就整理一下简单的三种排序方法。一、冒泡排序冒泡排序的原理是:一次比较相邻的两个数,小的放到前面,大的放到后面。 在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结

2017-08-12 16:21:16 327

原创 C——常用字符串函数、内存操作函数总结

《C和指针》第九章讲到了:字符串、字符和字节。学习之后,现把这一章的一些知识点提炼、总结。=========================================== 回顾一下字符串基础知识:字符串就是由零个或多个字符构成,结尾以’\0’作为终止标志的一种数据类型。 但是在我们的C语言中,没有像int、float这样,有一个显式的数据类型。因为字符串以一个字符串常量形式表示,或者存储在

2017-07-29 16:53:30 487

原创 C——(单向、单向循环、双向、双向循环)链表学习总结

这段时间一边看书一边把链表的知识总结了一下,并且画了示意图来帮助理解。主要是单向链表,单向循环链表,双向链表,双向循环链表四个部分,每个部分都包括了初始化,创建,插入,删除的基本操作,并总结了各个操作的核心代码。抽空可以看看Linux内核自带的链表(list.h)写法,增进学习。以下的链表均是不操作头节点的。一、单向链表1.单向链表:链式的存储结构,在逻辑上是连续的,每次通过一个指针来指向下一个节点

2017-07-25 14:59:53 14002 2

原创 Linux——C语言调用sqlite3

之前有记录了在linux下的sqlite3的安装以及简单使用,实际上sqlite3是提供了很多C语言的API接口的,接下来就来结合一个实例来学习C语言+sqlite3的使用。常用的API有: sqlite3_open() sqlite3_prepare() sqlite3_step() sqlite3_column() sqlite3_finalize() sqlite3_close()

2017-07-17 15:19:01 1298

原创 C——单向链表的学习

有时在写代码、阅读代码过程中,会感到自己的C语言基础知识不是很牢,因此会导致效率降低。所以,适时地再回过头来温习一下有关的基础知识会增进自己的理解,帮助是很大的。 在此,我自己写了一个程序,以便学习理解数据结构里很基本也很重要的一个部分——链表。当然,链表也可以细分为单链表、双向链表等。这里我写的是单链表。不仅复习了一下数据结构,还复习了一下C语言基础、指针,一举多得。下面把代码分为:链表创建、表

2017-07-16 16:00:11 582

原创 Linux——sqlite3安装、简单应用

sqlite3是在嵌入式中主要使用的轻量级数据库,在此先学习记录一下简单的使用,往后编程过程中会结合数据库。 先推荐学习sqlite的很好的网站:http://www.runoob.com/sqlite/sqlite-installation.html=========================================== sqlite数据类型: 用于描述一个对象的属性。 主要

2017-06-22 20:03:41 476

原创 Socket再学习——开发板ds18b20获取温度值并上报服务器

经过一段时间的学习、积累,自己对于物联网、计算机网络、socket编程等相关的领域和知识有了新的理解,网络部分一直是重中之重。因此重新再学习了Linux下的socket,并结合了一个简单的实际例子再来学习client端与server端工作流程。===========================================文件描述符:实际上就是Linux内核给分配的“称谓”,而在我们的TCP通

2017-06-21 16:45:08 964

转载 计算机网络——TCP协议和UDP协议

运输层向它上面应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最底层。两个主机进行通信实际上就是两个主机中的应用进程互相通信。应用进程之间的通信又称为端到端的通信。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。 运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。运输层还要对收到的报文进行差错检测。 运输层需要有

2017-06-08 13:53:05 610

原创 安信可-A7模块——C语言编程实现GPS功能

上一篇博文整理学习了有关串口通信、串口编程的一些基本知识。本篇将通过编程来获取、解析、转换GPS接收机接收的信息。 我们将在fl2440开发板上实现该功能。一、A7与开发板连线我使用的是USB转TTL串口转接线,这里要保证Linux支持了所用的转接芯片。我使用的是cp210的USB转串口芯片,因此要在内核选项中支持它:make menuconfig Device Drivers->

2017-06-07 17:23:20 4137 4

原创 C——Linux下的串口编程

之前在学习安信可A7模块时,是在PC上使用串口调试助手做了GPS的坐标数据信息的采集,同时分析了一些语句的含义。在这过程中,涉及到对嵌入式开发人员一个非常重要的知识:串口通信。在前篇也说到,我们将会自己写程序来对GPS数据进行解析,而这些数据正是靠串口来传输的。所以,本篇博文将进行关于串口通信的学习。一、串口接头首先我们得知道串口长什么样,常用的串口接头有两种,一种是9针串口(简称DB-9),一种是

2017-06-06 19:30:50 26300 3

原创 安信可-A7模块——GPS显示坐标信息解读

上一篇博文记录了A7的GPRS功能,并且使用AT命令进行了打电话、发短信。现在学习一下A7的GPS应用。 GPS(全球定位系统):利用GPS定位卫星,在全球范围内实时进行定位、导航的系统。 NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。GPS接收机根据NMEA-01

2017-06-04 16:42:53 4074 1

原创 安信可-A7模块——GPRS基本AT命令

所使用的模块是安信可开发的A7,该模块整合了GPS和GPRS的功能,先来学习一下GPRS使用AT命令进行打电话、接电话以及收发短信。模块说明: 使用TTL电平,串口连接接线好,插入SIM卡(仅支持移动、联通)。在PC上打开串口调试助手,波特率设置为115200,若A7模块成功启动,接收区会打印出一些信息: AT基本命令使用:在输入AT指令后一定要按“回车“键,再选择手动发送,只有这样才能

2017-05-31 21:13:47 9716 1

原创 stm8——串口printf的实现

串口通信是单片机学习的一个最基本、最重要的功能之一。串口可以间接的当做调试接口使用,实现单片机与电脑之间的通信。还可以与一些模块(比如蓝牙、wifi)通信,也可以作为和其他单片机通信的工具。作为开发者,熟悉串口是必须的。=========================================== STM8L的USART特性: 我们在使用串口的时候,主要关心:波特率、停止位、奇偶校验位。

2017-05-30 21:50:02 14834 4

原创 stm8——LED流水灯实现

最近接触并学习了一款STM8系列的芯片。以前学习了的ARM9+Linux后,再来学习单片机就感到上手很快了。 芯片基本信息:Type:STM8L151G68-bit ultralow power MCU, up to 32 KB Flash, 1 KB Data EEPROM RTC, LCD, timers, USART, I2C, SPI, ADC, DAC, comp

2017-05-26 21:25:07 6522 1

原创 fl2440——修改UART2作为正常串口

在S3C2440芯片上,是有3个串口的,其中默认UART0,UART1是作为普通串口。而UART2被Linux内核默认配置成了红外模式,若想把它当作普通串口使用,则需要修改代码。 同时。GPH6被设置为nRTS1,GPH7被设置为nCTS1,此时,串口2是无法收发数据的。代码修改如下: 1、vim arch/arm/mach-s3c2440/mach-smdk2440.c 修改红色框处

2017-05-07 13:29:28 1091

转载 C——container_of宏

container_of 宏: container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:439/**440 * container_of - cast a member of a structure out to the containing structure441 * @ptr: the pointer to the member.442

2017-05-01 12:49:12 266

转载 笔记——ROM、PROM、EPROM、EEPROM、Flash ROM

ROM指的是“只读存储器”,即Read-Only Memory。这是一种线路最简单半导体电路,通过掩模工艺,一次性制造,其中的代码与数据将永久保存(除非坏掉),不能进行修改。这玩意一般在大批量生产时才会被用的,优点是成本低、非常低,但是其风险比较大,在产品设计时,如果调试不彻底,很容易造成几千片的费片,行内话叫“掩砸了”!  PROM指的是“可编程只读存储器”既Programmable Red-On

2017-04-29 17:57:21 526

原创 fl2440——RTC(实时时钟)的学习、内核添加RTC支持

一、RTC基础知识在一个嵌入式系统中实时时钟(RTC)单元可以提供可靠的时钟包括时、分、秒和年、月、日。即使系统处于关机状态下它也能够正常工作(通常采用后备电池供电)其外围也不需要太多的辅助电路只需要一个高精度的晶振。 它的特点有: 1.时钟数据是以BCD码或者二进制表示。 2.对闰年的年、月、日能自动处理。 3.具有告警功能,当系统处于关机状态时能产生告警中断。 4.独立的电源输入。

2017-04-23 14:46:14 717

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除