自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (4)
  • 收藏
  • 关注

转载 Ubuntu修改密码和用户名

​Ubuntu是一个Linux操作系统,修改密码和用户名是有危险的动作,请谨慎修改。一、Ubuntu修改密码和用户名Ubuntu更改密码步骤:1、进入Ubuntu,打开一个终端,输入 sudo su转为root用户。 注意,必须先转为root用户!!!2、sudo passwd user(user 是对应的用户名)3、输入新密码,确认密码。4、修改密码成功,重启,输入新密码进入Ubun...

2019-12-26 10:20:41 25930 5

转载 PPPoE

PPPoE技术白皮书PPPoE技术白皮书关键词:PPP,Ethernet,PPPoE摘    要:PPPoE是一种通过一个远端接入设备为以太网上的主机提供接入服务,并可以对接入的每个主机实现控制和计费的技术。本文介绍了PPPoE的产生背景、技术优点、工作过程和典型组网应用。缩略语:缩略语英文全名中文解释

2017-03-23 17:27:54 10401

转载 btctl 网桥

将对应的有线LAN和无线LAN都绑定在这个虚拟bridge口上,给这个bridge口分配一个地址,其他子网微机配置网关为bridge口的地址便可以实现局域网内互联。brctl 功能:在当前 AP 中将指定无线空口加入到默认(default)桥中。参数含义:addif:将指定空接口加入到指定桥中.delif:删除指定桥中指定无线空接口。bridge:指定桥名称。

2017-03-23 16:33:46 931

原创 iwpriv/iwconfig/iwlist命令

1. iwpriv interface [private-command [private-arguments]]功能: 用来配置无线网络接口的各种私有可选参数iwpriv wifi0  //查看所有radio接口相关参数iwpriv ath0 //查看bss接口相关参数It is recommended to use the radio layer comma

2017-03-23 16:21:32 3075

转载 WAPI

什么是WAPI        WAPI是WLAN的另外一种标准,和WIFI也是一种无线传输的协议,其英文全称是“Wireless LAN Authentication and Privacy Infrastructure”,这是一个由中国提出来的无线传输的协议,其在用户层面的实际使用上和WIFI没有任何区别,都是短距离的无线网络,只是在在加密的算法上更加高级,因此号称比WIFI更为安全。

2017-03-23 14:12:45 984

原创 wireless参数

radio:   射频: 2.4G     5G 5G和2.4G两个频率范围段的无线信号  频段:其实就是分配给特定应用的频率范围mode:  802.11b/g/n(2.4GHZ)  802.11b/g(2.4GHZ)  802.11b(2.4GHZ);  802.11a/n(5GHZ)  802.11a/n/ac(5GHZ)country: CN/US 不同国家支持的信道不

2017-03-23 11:28:12 2465

转载 linux网络协议栈内核分析

1. Linux 网络路径1.1 发送端1.1.1 应用层(1) Socket 应用层的各种网络应用程序基本上都是通过 Linux Socket 编程接口来和内核空间的网络协议栈通信的。Linux Socket 是从 BSD Socket 发展而来的,它是 Linux 操作系统的重要组成部分之一,它是网络应用程序的基础。从层次上来说,它位于应用层,是操作系统为应用程

2017-03-23 10:11:18 624

转载 IEEE802.11协议栈

1、概述mac80211:是一个Linux内核子系统,是驱动开发者可用于为SoftMAC无线设备写驱动的框架。mac80211在内核空间实现STA模式,在用户空间实现AP模式(hostapd)。cfg80211:用于对无线设备进行配置管理,与FullMAC,mac80211和nl80211一起工作。nl80211:用于对无线设备进行配置管理,它是一个基本Ne

2017-03-23 10:03:57 9305 1

原创 bootloader

bootloader最终目的:启动内核BootLoader就是在操作系统运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备,从而将系统的 软硬件环境带到一个合适的状态,以便为最终调用操作系统做好准备在嵌入式系统中,通常没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。 一个嵌入式系统从软件角度来看分为三个层次:1. 引

2017-03-21 16:20:37 8632

原创 sqlite3

内存数据库:rc = sqlite3_open(":memory:", &db);在调用完以上函数后,不会有任何磁盘文件被生成,取而代之的是,一个新的数据库在纯内存中被成功创建了。临时数据库:rc = sqlite3_open("", &db);磁盘文件被创建用于存储临时数据库中的数据信息,但是实际上临时数据库通常也会驻留在内存中,以提高增删查改的速度。如果

2017-03-21 15:57:56 546

原创 freeradius

A) freeradius安装sudo apt-get install freeradiusB)添加用户sudo vim /etc/freeradius/userstest Cleartext-Password := "5678"C)配置client 网段sudo vim /etc/freeradius/clients.confclient 192.168.1.

2017-03-21 15:30:18 437

原创 类class

自动创建设备文件,可以让驱动自动创建设备文件,不再使用 mknod /dev/myled c 250 0一个struct class结构体类型变量对应一个类,内核同时提供了class_create(…)函数,可以用它来创建一个类,这个类存放于sysfs下面,一旦创建好了这个类,再调用 device_create(…)函数来在/dev目录下创建相应的设备节点。这样,加载模块的时候,用户空

2017-03-21 15:04:38 244

原创 内核中的时间流

时间的一个重要概念jiffies: 内核的一个全局变量,jiffies每隔一个固定时间就会增加1,这个固定间隔由定时器中断来实现每秒钟产生多少个定时器中断,由在中定义的宏HZ确定HZ是一个宏在编译内核时,这个__KERNEL__是编译选项#ifdef __KERNEL__#define HZ        CONFIG_HZ#define USER_HZ   HZ#

2017-03-21 15:01:55 344

原创 输入子系统

Linux系统提供了input子系统,按键、触摸屏、键盘、鼠标等输入都可以利用input接口函数来实现设备驱动input设备用input_dev结构体描述,(struct input_dev代表一个输入设备)使用input子系统实现输入设备驱动的时候,驱动的核心工作是向系统报告按键、触摸屏、键盘、鼠标等输入事件(event,通过input_event结构体描述)具体的输入设备驱

2017-03-21 14:58:39 248

原创 中断机制

裸板中的中断处理1.硬件处理(1)cpu强制进入中断模式(2)cpsr ->spsr(3)lr = pc -4(4)cpu强制跳转到中断向量表 2.软件处理初始化中断(1)设置中断管脚(2)设置触发方式(电平、边沿 EINT0/1/2)(3)设置中断模式 (IRQ/FIQ)INTMOD(4)使能中断,开屏蔽位 INTMSK,EINTMASK,CPSR

2017-03-21 14:49:45 313

原创 互斥机制

竞争发生的情况1. 多核cpu之间访问资源2. 低优先级的进程和高优先级的进程之间3. 中断处理程序和进程之间解决竞争的机制:互斥机制:1.关中断:   非抢占单CPU 别人的中断不会干扰  自己的中断会干扰 2.原子操作:  抢占多CPU  3.自旋锁:关抢占没关中断 一般配合关中断使用 忙等锁 里面放的代码尽量少  保证进程间互斥(多CPU)4.

2017-03-21 14:45:21 704

原创 IO模型

IO模型  阻塞 非阻塞 多路复用 信号驱动阻塞机制1. 使用等待队列去实现阻塞机制等待队列1. 头文件:    或则 #include 2. 等待队列头的定义wait_queue_head_t q;struct __wait_queue_head {    spinlock_t lock;    struct lis

2017-03-21 14:40:46 210

原创 字符设备驱动

如何一步一步执行驱动:在进行驱动加载的过程中使用 insmod mydev.ko时,会执行驱动的加载函数,在驱动的加载函数中会进行设备的注册1. MKDEV (hello_major, hello_minor)去生成设备号2. 向内核去注册设备节点result = register_chrdev_region (dev, number_of_devices, "hello");

2017-03-21 14:31:44 265

原创 proc文件系统

proc文件系统被用于内核向用户导出信息。通过它可以使用一种新的方法在 Linux内核空间和用户空间之间进行通信。struct proc_dir_entry {    unsigned int low_ino;    unsigned short namelen;    const char *name;    mode_t mode;   

2017-03-21 14:30:08 349

原创 交叉工具链

应用硬件平台不同:所用的交叉工具不同 在linux下通过arm-linux-gcc 编译出来的可执行程序用与在ARM平台下执行 gcc编译出来的程序适用于386平台解压+配置解压:tar -xvzf arm-linux-gcc-4.3.2.tgz  -C  /     修改 /etc/bash.bashrc        export PATH=$PATH:/home/linu

2017-03-21 14:23:49 315

原创 deb/rpm软件包

软件包 deb软件包   rpm软件包软件包管理工具   dpkg   aptrpm包-在红帽LINUX、SUSE、Fedora可以直接进行安装,但在Ubuntu中却无法识别;deb包-是Ubuntu的专利,在Ubuntu中双击deb包就可以进入自动安装进程;filename_Version_Reversion_Architectrue.deb软件包名_软件版本_修订版

2017-03-21 14:20:06 412

原创 编译&链接

库:默认搜索路径 /lib 或 /usr/lib头文件:默认搜索路径  /usr/include 生成静态库:1.生成 .o 文件:gcc -c  .c文件   -o   .o文件2.生成静态库:ar -cr   lib库名.a   *.o          //lib是前缀  .a是库后缀3.链接静态库:gcc  .c文件 -L  库所在的绝对路径  -l库名 //库

2017-03-21 13:50:52 251

原创 ARM体系架构

ARM官网:www.arm.com 一:什么是嵌入式:      嵌入式是为了完成某个特定功能,在软件和硬件上进行了裁剪,低成本,低功耗(电源管理模块,软件判断硬件是否使用),便携式(封装),实时性(中断)比较强,代码可固化(一般固化到Flash(rom)中),计算机系统。二:什么是ARM:    1:是一个公司的名称    2:一种微处理器的架构    3:一种技术三

2017-03-21 13:44:03 5570

原创 ARM汇编指令

条件执行:EQ:相等则执行NE:不相等则执行GE:大于等于执行LE:小于等于执行GT:大于执行LT:小于执行AL:无条件执行伪指令: 是有一些指令,不方便用汇编去实现,汇编器就提供一些指令,用于去实现一些不好实现的一些功能,最终这些伪指令都要生成相应的汇编指令操作数2 : 可以是一下几种情况:1. 可以是寄存器2. 可以使寄存

2017-03-21 13:35:38 1289

原创 netcat 应用

netcat是一个用于TCP/UDP连接和监听的linux工具, 主要用于网络传输及调试领域。netcat 可以打开TCP连接 发送UDP报文,监听在TCP和UDP端口, 以及TCP端口扫描, 而且脚本对用户友好,错误消息输出到屏幕上。它可以从文件或网络的一端读取数据,原封不动的将数据发送到另一台主机或文件中 netcat一般缩写为nc1.支持客户端和服务器2.支持连出和连入, T

2017-03-20 20:09:12 9583

转载 qos实现之tc流量控制

TC介绍在 linux 中,TC 有二种控制方法 CBQ 和 HTB.HTB 是设计用来替换 CBQ 的。它是一个层次式的过滤框架.TC包括三个基本的构成块: 队列规定 qdisc(queueing discipline )、类(class)和分类器(Classifiers)TC 中的队列(queueing discipline):      用来实现控制网

2017-03-20 12:57:48 2751 1

原创 内核中的内存与分配

1. 内核空间和用户空间 1G ~ 3G 用户空间使用的地址范围(3G)                      3G ~ 4G 内核空间使用的地址范围(1G)2. 内存的申请(1)用户空间的内存申请: malloc free(2)内核空间的内存申请:a.__get_free_pages() 与void free_page(unsigned long addr)ext

2017-03-20 11:10:03 366

原创 platform_bus

静态编译驱动: 1. 首先把led.c 放到内核中放到 driver/char目录中2. 添加一个编译的选项   修改driver/char/Kconfig 文件   config S5PV210_LED bool "s5pv210 led device support" tristate "s5pv210 led device support"    help

2017-03-20 11:05:13 711

原创 进程间通信IPC

一个大型的应用系统,往往需要众多进程协作,进程间通信的重要性显而易见。     首先,进程间通信至少可以通过传送打开文件来实现,不同的进程通过一个或多个文件来传递信息,事实上,在很多应用系统里,都使用了这种方法。但一般说来, 进程间通信(IPC:InterProcess Communication)不包括这种似乎比较低级的通信方法。Unix系统中实现进程

2017-03-20 11:02:12 262

转载 reaver 和 aircrack-ng 安装与使用

安装1. 下载 reaver最新版本 (这里用1.4) 2. 解压:  tar -xvf reaver-1.4.tar.gz3. cd reaver-1.4/src4. ./configure5. sudo make6. sudo make install如果缺少库的话在./configure 时会有提示。我在安装时提示缺少pcap library. 于是s

2017-03-20 10:46:30 7893

转载 GDB调试

1. tftp将附件gdbserver拷贝到AP的/bin目录2. AP上执行 gdbserver 10.0.0.201:2345 clid启动调试clid3. 在host主机(即我们的编译服务器)上   mips-linux-gdb进去gdb  (gdb) target remote 10.0.0.201:2345  再往下就是熟悉的gdb调试方法首先确保系统down

2017-03-20 10:41:19 383

原创 ubuntu下配置 tftp NFS服务

配置 tftp 服务的步骤: 1. 若/etc/xinetd.d/下存在 tftp,执行下列操作 1)关闭 xinetd 服务 $sudo service xinetd stop 2)删除 tftp 文件 $sudo rm /etc/xinetd.d/tftp 3) 启动 xinetd 服务 $sudo service xinetd start 2. 安装 tf

2017-03-20 10:38:33 239

转载 iperf 网络性能测试工具

iperf命令是一个网络性能测试工具。iperf可以测试TCP和UDP带宽质量。iperf可以测量最大TCP带宽,具有多种参数和UDP特性。iperf可以报告带宽,延迟抖动和数据包丢失。利用iperf这一特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能。 iperf分为两种版本,Unix/Linux版和Windows版,Unix/Linux版更新比较快,版本最新。Windows版更新

2017-03-20 10:32:14 559

转载 Valgrind 内存调试、内存泄漏检测

Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Google-O'Reilly开源代码奖。Valgrind遵守GNU通用公共许可证条款,是一款自由软件。Valgrind 中包含的 Memcheck 工具可以检查以下的程序错误:1.使

2017-03-20 10:29:37 1029

转载 提高程序员职场价值的10大技巧

开发技巧No. 1:博客建立自己的博客,每月至少发布一篇文章。做点研究,因为只有自己亲身经历过,才能言之有物,不会听上去像吹牛皮。学会如何写文章,像以前你的老师教的那样:列大纲,描述情节,最后检查语法和错别字。然后,即使再不舍也要大刀阔斧般地简化和缩短文章到一眼就能知道大概意思。开发技巧No. 2:开源现在的年轻人可能没有经历过,程序员随时会失业的悲惨境地。但是即使是在最黑暗的时期,凡

2017-03-20 10:25:28 174

原创 内存对齐

内存对齐的原则(1)如果结构体中有大于或等于4字节的基本数据类型,按照4字节对齐(2)如果结构体内部只有小于4字节的基本类型,这时按照最大的那个数据类型对齐struct aa {     //占用16个字节    char b;    int c;    struct d{        char  d1;        short d2;        int

2017-03-20 10:18:59 293

转载 scanf 特殊用法

语法:   #include   int scanf( const char *format, ... ); 类似函数有       int scanf(const char *format, ...);       int fscanf(FILE *stream, const char *format, ...);//指定输入流       int sscanf(cons

2017-03-20 10:09:43 533

原创 I2C驱动

Linux2.6.30/driver/i2c/1.algos: 协议算法相关的东西2.busses: 各种平台的i2c总线驱动(i2c控制器驱动/i2c适配器驱动)3.chips: 各种i2c设备驱动(e2prom/某种传感器/触摸屏)4.i2c-core.c i2c-dev.c: i2c子系统的通用文件(i2c核心层,提供一些通用函数接口)应用层app

2016-05-07 01:16:18 6127

转载 RIP

RIP(Routing Information Protocol,路由信息协议)是一种较为简单的内部网关协议(Interior Gateway Protocol,IGP),主要用于规模较小的网络中,比如校园网以及结构较简单的地区性网络。对于更为复杂的环境和大型网络,一般不使用RIP。由于RIP的实现较为简单,在配置和维护管理方面也远比OSPF和IS-IS容易,因此在实际组网中仍有广泛地应用

2016-05-07 01:09:35 1621

转载 ARP

Arp(adress resolution protocol—地址解析协议)是在传输IP包时,因不知道IP地址对应的MAC地址,无法传送数据引起的,通过arp,建立目的IP跟MAC地址的映射关系,从而获得目的IP的MAC地址。Arp头部的数据结构如下:typedefstruct arphdr   {                 unsignedshort arp_hrd;/*硬

2016-05-07 01:03:11 527

51开发板原理图

关于STC89C51的最小系统及外部电路,适用于初学单片机的人员

2013-04-26

非常详细的51单片机引脚介绍

非常适合初学者的资源 很好的入门资料

2012-12-18

单片机的c语言教程

详细讲解c语言基础知识 对初学者很有帮助

2012-11-06

51 单片机 C 语言

单片机学习实用100例!适合广大单片机初学者

2012-11-06

空空如也

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

TA关注的人

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