自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一程山水一程歌

ChinaUnix博客 blog.chinaunix.net/uid/31390529.html

  • 博客(155)
  • 资源 (9)
  • 收藏
  • 关注

原创 AR7240芯片 EthernetSwitch模块 学习笔记

【模块概述】       EthernetSwitch 模块中包含 5个 10/100Mbps高速以太网接口和 5个 10/100双模式以太网收发器(PHY)。模块可通过配置使用 VLAN 功能,支持 16个802.1Q VLAN和 基于端口的VLAN划分,VLAN ID的可分配范围为0~4095。 【寄存器概述】       内置交换芯片模块的寄存器分 3大类:全局控制寄存器

2016-05-26 17:03:52 7311

原创 批处理之 正确使用for语句 以及!errorlevel!、%errorlevel% 与 DelayedExpansion用法详解

昨天在使用批处理中的 for 语句的时候,最初我采用下面这种写法:@echo offset ip=192.168.1for /l %%i in (1,1,5) do (    set ip=%ip%.%%i    :: 遍历 IP 池    echo ip=%ip%  i=%%i)图1    运行结果如上图,显示变量 ip 的值始终为 192.168.1,并

2016-05-20 20:55:15 5822

原创 C语言 逆序显示文本内容并保存

【说明】    对指定文件中的内容或传入的字符串参数逆序打印并保存到文件中。【命令行示例】    [root@localhost]$ ./reverseStr test.txt    这条命令的含义是读取 ./test.txt 文件中的内容,将文件内容顺序反向存储到 outPut.txt 文件中。    [root@localhost]$ ./rever

2016-05-16 08:13:01 2488

原创 C语言 命令行传参进行 异或 加密/解密

【说明】    对指定文件中的内容或传入的文本参数进行异或加密/解密,并将加密/解密后的结果保存到文档。可以指定进行异或加密/解密时要使用的私钥。【命令行示例】    [root@localhost]$ ./magicTransfer xCode 64x    这条命令的含义是如果当前目录下存在 64.txt 这个文本,则对该文本进行解密并将解密结果保存到 64x.

2016-05-16 08:03:29 1719

原创 2.4G WLAN芯片 AR9341 学习笔记

【芯片概述】    AR9341是一款用于 2.4GHz 网络的 WLAN 平台芯片,CPU核为 MIPS 74Kc。芯片内置 MAC/PHY 模块,支持 20MHz/144Mbps 传输模式和 40MHz/300Mbps 传输模式,支持从 NOR flash 上启动。除此之外,AR9341还有很多其它内置模块,其系统框图如下:图1 AR9341系统框图  【Datashe

2016-05-14 17:53:19 8331

原创 PHY芯片 AR8033驱动代码分析

【思路描述】    想要在Linux上使用AR8033需要做2部分工作,一是编写设备驱动并将设备驱动注册到内核,二是创建设备通信要使用的mdio总线并将设备注册到总线上。【代码分析】a)  驱动注册流程:    文件mdio_gpio.c 是 mdio_gpio 模块的代码所在。在模块加载函数 mdio_gpio_init() 中通过语句 ret = p

2016-05-13 21:36:41 10379

原创 PHY芯片 AR8033 学习笔记

【芯片简介】    AR8033是Atheros公司的第4代10/100/1000Mbps速率以太网PHY芯片,可用于家庭网关、企业交换机、移动基站、光模块等设备。该芯片采用RGMII协议或SGMII协议与MAC芯片进行通信,只需要单一3.3V电源供电,可自行整流变换出片内电路所需其它电源。AR8033还内置了一个工作频率为1.25GHz的SerDes接口,可以直接与光纤收发模块连接,将光信号

2016-05-12 22:23:24 23601 7

原创 Linux内核 定时器 用法

【前言】    最近在工程中接触到调用 Linux 内核函数配置定时器实现 LED 闪烁效果的代码。对定时器的使用方法写个简单小结。【概述】    定时器的用法不复杂。调用过程分为以下几步:    1、声明一个 timer。    2、初始化 timer。    3、完善定时中断服务函数。    4、注册 timer 到定时器链表。    5、重新注册 ti

2016-05-04 21:12:31 2679

原创 学习笔记之 curl 命令用法 中文详解

【前言】 本文翻译和整理自 Linux-2.6.32 中和 curl 相关的 Manual Page 描述文档。文档目的仅在提醒读者所遗忘的知识点,故在整理时削弱了阅读流畅性,适用于对 curl 有一定了解的开发人员。【语法】 curl [options] [URL...]【概述】 curl 命令用作网络数据包收发,常应用于非交互式环境中。 URL 的格式依赖于命令所使用的网络协议,相关详细信息可以查看《RFC 3986》文档。 如果在一条命令中访问多个文件

2016-04-28 22:15:32 14803

原创 Linux内核中的 struct class 简介

【问题回溯】    在分析 LED 控制的代码时,发现 Led-class.c 文件的首部出现了这样一句声明:    static struct class *leds_class;    这里出现了 class 这种在 C++中被广泛运用的概念。【释疑解惑】    代码中出现的 class 指的是 设备类(device classes),是对于设备的高级抽象。但实际上

2016-04-28 22:01:28 4472

原创 创建Linux内核函数的Man手册

【前言】    编写驱动程序的时候,一般情况下使用的都不是 C标准库的函数,而是 Linux内核中的函数。所以即使用 man命令 也找不到很多函数的帮助信息,这很不利于 Linux内核的学习。    好在 Linux内核虽然没有直接提供手册,却提供了创建手册的工具。我们可以手动生成 Linux内核的 Man手册。【创建步骤】    1、下载一个稳定版本的内核,例如:linux-

2016-04-28 21:58:10 3916 1

原创 Linux内核态与用户态

【简述】    内核态(Kernel Mode) 和 用户态(User Mode) 实际上是指 2 种不同的访问权限。    x86处理器包含 4 个不同的特权等级,分别是 Ring0~Ring3。Ring0下,可以执行特权级指令,对任何 I/O 设备都有访问权限,Ring3则被限制很多操作。    在使用 x86处理器的设备上,用户代码运行在 Ring3,系统内核代码运行在 Ring

2016-04-15 18:44:17 1447 1

原创 一些常用软件对应的开源软件

Windows ---- Linux --- 操作系统MindJet / xMind / Visio ---- graphviz ---- 系统框图/流程图PhotoShop ---- gimp ---- 图像处理VisualStudio ---- GCC ---- 编译器/开发环境MSOffice ---- WPS ---- 文字处理IIS ---- Apache/nginx ---- 服务器VmWare ---- VirtualBox ---- 虚拟机WinRAR ----

2016-04-15 18:39:25 943

原创 Linux内核模块编程学习总结

【内核模块的出现】    编译内核时,用户可以把所有的代码编译进内核,但是这样会引起两个问题:    一是内核过大;    二是当需要添加或者删除内核时,需要重新再编译内核。    所以有了 内核模块 的概念。    模块并不编译到内核中,编译后存放在指定的目录,当需要使用时动态加载。【内核模块的优点】    在嵌入式设备驱动开发中将驱动程序以模块的形式发布,极

2016-04-15 18:37:08 1570

原创 DEVICE_ATTR 详解

【官方文档】    官方描述文档路径为 /linux-4.3/Documentation/driver-model/device.txt    源码路径为 /linux-4.3/include/linux/device.h【DEVICE_ATTR 说明】    原文描述:    ˉˉˉˉˉˉˉˉˉˉˉˉˉ    Attributes are declared usi

2016-04-09 02:17:00 6643

原创 Makefile 学习整理

【说明】    开发人员在阅读或编写 Makefile时,可能会记不起某些知识点。    此文档目的是希望能起到提醒读者所遗忘的知识点的作用,故在整理时削弱了阅读流畅性,适用于对 Makefile有一定了解的开发人员。【版权声明】    本文主体参考和整理自 陈皓 的文章《跟我一起写Makefile》。【背景】    Makefile决定了整个工程的编译规则。会不会

2016-04-07 21:05:05 3148 2

原创 一些好用的hack命令工具

【命令工具】-----------------------------------------------------------------------------------------wget,    非交互式互联网资源下载器,支持 HTTP/HTTPS/FTP 等协议。可用于获取提权工具 或其它 hack工具。screen,    远程会话管理工具,可以实现多窗口操作、

2016-04-03 10:22:01 3436

原创 Auto MDI/MDI-X 简要说明及网线头线序

网线的标准分为A 类接法(TIA/EIA-568-A)和 B 类接法(TIA/EIA-568-B)。直连网线(最常见的网线,又叫正线)是网线两头都是A类接法或者都是B类接法;交叉网线(又叫反线)是网线两头是用不同类的接法组成的。正常来说,如果两台不同类型的设备要连接的话要用直连线,例如是交换机连接路由器,交换机连接 PC 机;如果两台相同设备要互相连接的话,

2016-04-03 10:05:56 6755

原创 嵌入式设备中搭建小型http服务器

先说点闲话。其实这篇文章本该在去年就发上来的,但是因为自己太懒,加上那段时间事情比较多所以一直没把内容写成文档。现在换了一个公司,时间充裕了很多,所以补发上来。闲话休题,下面是正文:架构使用传统的 C/S 模式。【Client端】    可以使用 libcurl 开源库。libcurl 支持的协议很多,包括 http、https、ftp、telnet等。源码下载地址

2016-04-03 10:00:47 2335

原创 bash学习整理

【背景】    bash,即Bourne Again Shell,是sh(Bourne Shell)的增强版本。【历史命令】    Linux 预设可以记录 1000 条历史命令,保存在 ~/.bash_history 文件中。    !!    表示执行上一条命令    !n    表示执行历史记录中的第 n 条命令    !str    表示执行历史记录中最近一

2016-04-03 09:49:58 993

原创 Shell Script 学习整理

【格式】    以 #!/bin/[解释器类型] 作为脚本内容的第一行。    比如使用的解释器为 bash,那么第一行就写 #!/bin/bash。同理,若解释器为 sh 就写 #!/bin/sh    如果脚本首行没有这句话,shell 的默认脚本解释器又不是你想用的解释器,那么执行脚本可能会出错。    脚本文件的后缀为 .sh。扩展名只是为了让用户更容易区分文件,没

2016-04-03 09:43:52 718

原创 在SourceInsight中使用SourceMonitor对C语言程序进行度量,以及Kiviat图说明

SourceMonitor 是用于代码的圈复杂度测量的一款很好的工具,被运用各类编程语言的开发者广泛使用。她能以窗口模式运行,也可以作为开发工具的插件使用,但是只工作在 Windows 系统下。我个人认为将 SourceMonitor 以插件的方式在开发环境下进行调用更为方便。    SourceMonitor 工具是免费的,下载地址是:http://www.campwoodsw.com/

2016-03-31 17:08:00 6944

原创 VBS实现的日程提醒小工具

给自己留个云备份。【说明】remindMe.vbs脚本使用 VisualBasicScript 编写,可以直接双击运行,也可以在命令行环境下传入参数运行。因为是写给自己用的,所以没有对传入参数进行合法性检查。【功能】在设定好的时间到达时,对日程安排进行弹窗提醒。源码如下:'判断是否从命令行传入参数if wscript.arguments.length = 0 thenala

2016-03-30 12:48:01 2135

原创 SourceInsight中设置用空格代替tab键的注意事项

【注意】 我使用的 SourceInsight 版本为 3.50.0076。在这个版本里需要将 “Tab width” 的值设定成 4。【操作】 1、配置窗口的打开路径为 Option -> Preferences -> Syntax Formatting -> Doc Types 2、勾选“Expand tabs”,并将 “Tab width” 的值设定为 4

2016-03-28 19:59:10 7806 1

原创 小米4C搜索不到部分WiFi信号的解决办法

问题描述: 第一次使用时可以搜索到并连接上某个WiFi,一段时间后手机自动断开 WiFi 连接且无法再搜索到该信号。设备信息: Android版本:5.1.1 LMY47Y MIUI版本:MIUI 7.1 | 稳定版7.1.6.0 (LXKCNCK)导致问题的可能原因: 该版本的 WiFi 驱动不完善,对某些频段的信号不敏感。以我自己遭遇的环境为例,路由器之前的信道模式设置为“自动”,此时手机无法搜索到该路由器 WiFi。 经测试,当路由器信道为 13、12时

2016-02-21 20:55:55 7596

原创 Windows 实用系统管理命令

gpedit.msc 组策略管理器certmgr.msc 证书管理器bcdedit 引导信息编辑taskmgr 资源管理器diskmgmt.msc 磁盘管理器services.msc 服务管理器diskpart 分区工具devmgmt.msc 设备管理器regedit 注册表编辑器fsuti

2016-02-17 23:09:56 997

原创 获取管理员权限的粗糙思路

过完年了,挺长时间没有更新博客来着。刚才看到条消息说 glibc 中的 getaddrinfo() 函数包含了一个缓冲区溢出bug,允许攻击者远程执行恶意代码。漏洞可以在通过设备或应用查询被攻击者控制的域名或DNS服务器时被利用。glibc维护者已经发布了修正,但很多包含该漏洞的应用或设备未必能及时打上补丁。有思于此,加上前段时间在看李承远写的《逆向工程核心原理》,虽然目前的我对于如何黑进

2016-02-17 22:58:56 842

原创 使用宏定义让参数含义更清晰

很多时候我们需要一个函数可以返回多个返回值,同时还希望能够获得这个函数的执行状态从而判断这个函数是执行成功还是失败。于是我们可以利用函数的返回值作为函数执行状态的判定依据,同时传入一个参数用于接收函数执行完成所得到的数据。像下面这个例子一样:// 宏定义#define COMMUNICATE_FAILED-1#define COMMUNICATE_SUCCESSFUL0

2016-01-20 22:59:12 1029

原创 sscanf 函数、scanf 函数与正则表达式

C中的格式化输入输出函数,比如 scanf、printf、sscanf、sprintf 等,都支持使用正则表达式来修饰格式化字符串。当我们需要从文本或内存中读入字符串中的某一部分数据时,可以使用正则表达式迅速定位我们希望获取的内容。例如,在工程中我们使用结构体 tGuiDeviceInfoRsp 来存储设备信息。成员 tGuiDeviceInfoRsp.m_tKernelInfo.m_strK

2016-01-08 23:00:42 1262

原创 函数指针的使用

函数指针通常用来将一个函数A作为参数传递到另一个函数B当中,我们可以通过函数指针在函数B中对函数A进行使用。举个栗子:我们定义一个函数 int TaskAssignment(...) 用于创建一个线程,多次调用该函数即可创建多个线程。我每次希望创建的线程所要实现的功能是不同的,但回调函数所接受的参数却是相同的,即利用 phtread_create(...) 函数创建线程时传入的回调函数不同

2016-01-06 22:56:45 905

原创 使用宏定义打开/关闭调试输出(debug版本与release版本互相切换)

不管使用什么编程语言、在什么平台环境下进行开发,查看程序运行状态和调试都是必不可少的。我们以前在编写 C/C++ 和 Java 工程时,可以使用 VS 和 eclipse ,或者对单片机进行编程时,可以使用 Keil 、 ADS 或 CodeWarrior,使用这些 IDE 都可以很方便地看到程序状态信息和调试信息。但是在嵌入式编程中,我们使用的更多的是 SourceInsight、Sublime

2015-12-25 22:54:30 2901

原创 修改Linux配置使其默认启动到命令行模式(控制台)

上班之后开始频繁使用Linux,平常都是使用命令行进行工作,偶尔才会切换到 GUI 环境下玩玩,同时也为了多熟悉熟悉 Linux 命令,于是想把开机默认界面设置为命令行模式,也就是控制台,有需要的时候再手动启动 GUI 桌面。我使用的系统是 ubuntu 13.04,配置参数写在 /etc/default/grub 文件里,将 GRUB_CMDLINE_LINUX_DEFAULT 的值由“quie

2015-12-25 21:53:45 4084

原创 生成在嵌入式设备上运行的程序需要进行交叉编译

需要进行交叉编译才能生成可以在嵌入式设备上运行的程序。拿我今天的经历来说,使用 gcc 编译链接生成的程序可以在 ubuntu PC上正常运行,但是 tftp 上传到设备上之后,运行却总提示 syntax error: unexpected '('。后来董工恰巧看见了提醒我说应该使用交叉编译生成可执行文件,于是使用 arm-hisiv300-linux-gcc 重新编译链接,tftp 到设

2015-12-25 21:44:28 1509

原创 gcc编译提示pthread_create和pthread_detach未定义的引用的解决方法

因为 pthread_create 和 pthread_detach 函数不是 Linux 的内建函数,所以在对使用了多线程技术的工程进行编译链接生产可执行文件时,需要在链接过程添加 -pthread 参数。根据 Linux 中man出的帮助信息也可以看到相应的提示“Compile and link with -pthread”。所以makefile应该这么写:testPthr

2015-12-24 00:46:23 4824

原创 庆祝博客开通!

自己默默学习技术,从什么都不懂到现在一知半解,一路走来挖了不少坑,也被坑过不少。为了不再被坑,我做了不少的笔记。每次碰到自己解决不了的问题我都会或翻阅书籍或上网查询,获益匪浅。但是学习技术不应该仅仅只是获取,还应该分享。分享自己填坑的经历可以帮助自己加深对问题解决方法的理解,也可以帮助到其他同样碰到这个问题的道友,这就是让我开始写博客的朴素想法。 希望这个博客能发挥她的作用!

2015-12-24 00:05:55 796

openjdk7.tar.bz2

use this package for compiling Android 6.0 or earlier version.

2021-04-21

myScripts.tar.bz2

vbs bat shell python,自用脚本。2017.08.25

2017-08-25

Adb_Fastboot_tool_suite_for_Windows

适用于Windows系统的 adb、fastboot 等工具集合,可tab自动补全命令。

2017-07-27

windows常用bat/vbs脚本合集

windows常用bat/vbs脚本合集,2017年06月09日版本

2017-06-09

s3c2410 datasheet 免积分下载

s3c2410 datasheet 免积分下载

2017-06-09

myScript.rar.20161205

bat, vbs 自用工具包

2016-12-05

Windows .bat .vbs 脚本工具集合包

Windows环境下的.bat和.vbs脚本工具集合。可以一键获取管理员权限、一键添加环境变量、启动bash环境、文件完整搜索、日程提醒等。 此工具包为私人备份,如要下载请使用资源分交换,尊重他人劳动成果。

2016-09-26

利用VB6绘制衰减正弦、双曲线、圆、指数

利用VB6绘制衰减的正弦信号、双曲线、圆、指数等函数的图像

2013-11-28

51单片机定时器初值计算器

适用于多种晶振频率下的51系列单片机定时器初值计算,功能强大!

2012-11-21

空空如也

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

TA关注的人

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