自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lyyyuna 的小花园

动静中之动

  • 博客(71)
  • 资源 (7)
  • 收藏
  • 关注

原创 [tcpip] 准备工作

《tcpip详解》 – tcpip的经典书籍wireshark抓包软件。官方下载地址: https://www.wireshark.org/download.htmlwinpcap库。官方下载地址: http://www.winpcap.org/devel.htmnmap局域网扫描软件。官方下载地址: https://nmap.org/download.html

2015-07-28 22:24:01 1090

原创 [shellcode学习] 绕过条件判断

shellcode学习第一个例子。以下有一段c语言编写的命令行程序,检验用户输入的数字,并判断是否合法。这里用户的输入被放在了函数的缓冲区里,但程序没有对缓冲区长度做检查,留下了漏洞。这里可以利用该漏洞绕过数字检察,使得任意输入都会被判定为正确。 在 validate_serial 中,do_valid_stuff 的地址溢出到函数的返回值上,就可实现。源程序#include <stdio.h>

2015-05-11 17:17:27 1892

原创 Windows系统进程

系统空闲进程(Idle)该进程的ID为0,其中每个处理器或核对应有一个线程。System进程在Windows XP和Windows Server 2003中改进程的ID为4,它包含了内核模式系统进程。系统辅助线程,以及执行体和驱动程序通过PsCreateSystemThread创建的线程,都在System进程中。会话管理器(Session manager, smss.exe)这是Windows系统中

2015-05-03 10:53:29 1431

原创 [测试] markdown 写作测试

我就来写一下玩玩。

2015-05-03 09:12:25 1187

原创 为 Visual Studio 配置 Git 源代码管理工具

使用 Visual Studio 可以配合 Git 工具做版本管理。也可以直接将工程同步到 GitHub 上。配置过程非常简单。首先你要安装 GIt,安装和配置步骤见 安装 Git,Windows 上只要替换其中的安装步骤,其他类似。在 Visual Studio 安装插件 Git Source Control Provider然后在 tools->options->s

2014-11-26 10:34:14 13014 1

原创 汇编学习-堆栈与子程序

任何程序在运行过程中都需要使用堆栈,操作系统为每一个程序(进程及线程)设置一个堆栈。在使用高级语言编程时,源程序中使用的函数调用、局部变量都要用到堆栈,由编译器来负责生成有关的机器指令。我的理解,堆栈就是维护当前线程中运行状态的一个数据结构,这种状态包括:需要传递的变量,函数的返回地址,局部变量等等。与堆栈相关的 3 个寄存器是:SS, ESP, EBP。ESP 寄存器中的内容作为堆栈的当

2014-11-17 16:38:52 11330

原创 汇编学习-分支与循环

文章同步发表于:http://www.lihulab.com/?p=77在高级语言程序设计中,我们不仅要求程序能够顺序执行,还要求其能够执行不同分支,或者重复执行某些操作。在汇编语言中,同样具有相同的能力,可以由相应的指令来控制程序的执行流程。因为毕竟高级语言都是汇编实现的,只是不直观而已。 转移无条件转移为JMP,类似c语言中的 goto。在c语言

2014-11-11 16:30:00 8578

原创 Haskell学习-初识

简介haskell是一门函数式语言,区别于 c/c++这样的命令式语言,它是无状态的。在命令式语言中的函数,更多是一堆控制流程,电脑会按照命令逐个执行语句,而函数式编程中,则是告诉电脑“是什么”,在定义函数时,更像是“数学意义上的定义”,比如,定义阶乘是“从1到某数的所有整数相乘”。这种和状态无关的特性,使其没有副作用,因为在数学中,相同的函数参数求值,结果总是相同的。

2014-11-09 13:20:36 1014

转载 USB HID 设备类协议入门

一、应用场合USB HID类是比较大的一个类,HID类设备属于人机交互操作的设备。用于控制计算机操作的一些方面,如USB鼠标,USB键盘,USB游戏操纵杆,USB触摸板,USB轨迹球、电话拨号设备、VCR遥控等等设备。另外,使用HID设备的一个好处就是,操作系统自带了HID类的驱动程序,而用户无需去开发很麻烦的驱动程序,只要直接使用API调用即可完成通信。所以很多简单的USB设备,喜欢枚举

2013-06-04 09:12:48 909

转载 ubuntu12.04 卸载和安装mysql

卸载mysql第一步1sudo apt-get autoremove --purge mysql-server-5.02sudo apt-get remove mysql-server3sudo apt-get autoremove m

2013-05-28 21:24:05 651

转载 Git 如何合并其他 Remote 上面的更新

在 Github 上面 Fork 别人的项目时,我们常常会遇到主项目有了更新,这个时候怎么把主项目的更新合并到自己 Fork的版本里面来呢? 今天突然有人问我这个问题,这里就写出来。 下面以 ruby-china 这个项目为例,假设我是用户@tualatrix, 并且我有一个 ruby-china 的 fork版本在 这里 ,而这个时候我在本地的版本是 tualatrix/ruby-chi

2013-05-12 21:28:27 1800

转载 ELF文件重定位

为了保持简洁,本文省去了对部分细节的描述,例如weak型变量,和GOT等重定位类型。本文假设读者了解ELF文件格式。代码在附件中。如果论坛不支持附件,可以发邮件给我要1 ELF文件的装载在ELF文件中,使用section和program两种结构描述文件的内容。通常来说,ELF可重定位文件采用section,ELF可执行文件使用program,可重链接文件则两种都用。装载文件,其

2013-05-09 16:11:37 2014

转载 ELF文件介绍

Notes on the Flat-Text TranscriptionThe content of this transcription differs from the content of theoriginal document in the following ways.1. Page breaks and pagination have been omitted.2. As

2013-05-09 13:42:01 1763

原创 [SCons 有点翻译的scons学习] 3. 生成和使用库

chapter 4. building and linking with libraries=====在大型的软件中,用库来管理十分方便,也可以为代码复用省不少事。4.1 building libraries=====像 Program 函数一样,只需要调用 Library 函数就能生成库了。      Library('foo', ['f1.c', 'f2.c', '

2013-04-22 14:38:37 1038

原创 [RT-Thread 源码分析] 3. 内核对象管理

RTT在设计时虽然采用了c语言,但使用了面向对象的思想。所有的线程、事件设备等都是继承自object,且采用链表的方式统一管理。如图所示。对象控制块 /** * Base structure of Kernel object */ struct rt_object { char name[RT_NAME

2013-04-22 11:09:39 1544

原创 [RT-Thread 源码分析] 2. 内存管理2

/** * This function will change the previously allocated memory block. * * @param rmem pointer to memory allocated by rt_malloc * @param newsize the required new size * * @return the changed mem

2013-04-19 15:20:41 1654

原创 [SCons 有点翻译的scons学习] 2. 简化编译过程

Chapter 3. Less Simple Things to do with builds在这章中,你将看到一些简单的编译配置例子。3.1 Specifying the name of the target (output) file=====当你使用 Program 来编译工程,默认的输出文件的名字和源文件同名。       Program('hello.c')

2013-04-19 09:07:57 967

转载 vim 启动 python的自动补全

如果是VIM7.3,不需要再下载 pythoncomplete.vim 这个插件,因为安装时自带了。但是, 必须保证编译安装 VIM 的时候启用了 Python 特性, 即:./configure --with-features=huge --enable-pythoninterp=yes  我们可以在vim autoload 目录下看到在 ~/.vimrc

2013-04-18 11:31:52 857

原创 [RT-Thread 源码分析] 1. 内存管理1

rt-thread的小内存管理是其默认的堆内存管理算法。是采用静态链表来实现的,源文件为mem.c。1.数据结构===== struct heap_mem { /* magic and used flag */ rt_uint16_t magic; // 如果此内存块被分配了,则置0x1ea0,以此标志

2013-04-11 09:45:43 2436

原创 [RTT例程练习] 6.3 在 Finsh 中查看自定义变量

和前面类似,使用宏,就可以将变量输出至FinshFINSH_VAR_EXPORT(count, finsh_type_int, count variable for finsh);程序#include #include static rt_thread_t tid = RT_NULL;static void thread_entry(void *parameter)

2013-04-07 14:20:00 2397

原创 [RTT例程练习] 6.2 在 Finsh 中运行自定义函数

可以直接在Finsh中运行自己定义的函数。官方有三种方式,我觉得第二种比较方便,其他就不介绍了。首先需要在application.c 中包含 finsh.h 头文件,然后在函数下方添加宏FINSH_FUNCTION_EXPORT(fun_with_arg, function with a argument);程序#include #include static

2013-04-07 14:09:30 4572

原创 [RTT例程练习] 6.1 Finsh 的基本使用

Finsh是调试的利器,它可以获取系统运行时信息,对任意寄存器和内存地址进行读写操作,还能直接调用系统函数访问系统变量。要使用这个功能,需要开启/* SECTION: Finsh, a C-Express shell */#define RT_USING_FINSH/* Using symbol table */#define FINSH_USING_SYMTAB#defi

2013-04-07 14:00:19 4992 1

原创 [RTT例程练习] 4.4 定时器控制

定时器可以通过rt_timer_control(),来改变定时器的某些特性,比如定时时间。这里,一开始定时周期是100,并且在程序中使用 rt_tick_get()-tick来确认定时周期是否如预设那样。当8次之后,使用rt_timer_control(),将定时周期改为3000。实际效果通过打印的tick信息和直观感受都可以验证。程序:#include static

2013-04-07 13:44:26 3399

原创 [RTT例程练习] 4.2 动态定时器

动态和静态的意思和前面完全一样,这里不再重复。这里创建两个动态定时器,一个是周期的另一个是单次的。其中timeout() 函数都是回调函数,即定时时间到之后,操作系统会自动调用的函数。 程序:#include static rt_timer_t timer1;static rt_timer_t timer2;static rt_uint8_t count;static

2013-04-07 13:35:50 2033

原创 [RTT例程练习] 4.1 定时器基本使用

定时器分为软件定时器和硬件定时器。硬件定时器,是指单片机本身提供的一种外设,能够产生定时事件,而且不占用CPU时间。优点是定时精度高,独立于CPU,还可灵活配置其他许多功能,例如PWM。而软件定时器是操作系统提供的一种定时接口,其精度取决于操作系统的tick时间,而RTOS的tick建立在硬件定时器之上,一旦开机就不再改变。但优点是其数量不受硬件定时器数目的限制,而且便于操作系统统一管理。

2013-04-07 13:30:45 3407

原创 [RTT例程练习] 3.3 静态内存管理,内存池mempool

内存池是一种静态的内存管理方法。它预先将一块固定连续的内存区域划分成几个大小不同的块。使用者申请时就将对应大小的内存块给他。这种方法的优点是不会有内存碎片,但不够灵活,适用于需要频繁存取的场合,例如buffer。这个例子有两个线程。thread1不停分配内存块,但其中并没有使用delay() 来使自己挂起,所以thread2 由于优先级低于 thread1 而一直得不到运行。thread1 分

2013-04-07 13:16:46 2656

原创 [RTT例程练习] 3.2 动态内存管理之rt_realloc和free

realloc 用于重新分配内存的场景。如果原先通过 malloc分配的空间过小,则可通过realloc重新分配大小。当然具体实现的时候分两种情况,如果原内存块后有足够的空间,则之间将原内存块扩大,如果不够,则重新寻找一个地方,将原数据也拷贝至此。代码:#include struct rt_thread thread1;static rt_uint8_t thread1_stack[

2013-04-06 21:28:02 2405

原创 在树莓派上安装java

和电脑上的大同小异,但是要注意的是安装的是 硬浮点版本 还是 软浮点版本。我的raspbian 是硬浮点版本的,所以我就选了硬浮点的JRE。下载地址 http://jdk8.java.net/fxarmpreview/先通过psftp或者u盘将下载的JRE拷贝到树莓派上,我选择的目录为 /usr/local/java/。然后解压 tar -zxvf *.gz最后再将环境变量写入

2013-04-04 17:11:18 9868

原创 [RTT例程练习] 3.1 动态内存管理之rt_malloc和rt_free

rt_malloc和rt_free 和 malloc free 类似,是用来在堆上分配内存的,RT-Thread中是用小内存法来实现的。下面程序就是不停分配内存和释放内存,并打印分配到的内存首地址。程序:#include struct rt_thread thread1;static rt_uint8_t thread1_stack[512];static void threa

2013-04-01 10:23:37 3757

原创 [RTT例程练习] 2.9 事件机制event

事件也是一种在线程间同步的方式。RTT中,事件是一个32bit(4个字节)的变量,其中每一个位可以表示代表一种事件。接收事件的线程既可以在多个事件同时发生后(即多个bit位同时置1)触发,正如本例中线程1中第一条语句所演示的那样。也可以多个事件任意一个发生后(即多个bit位任意一个置位)就可以触发。主程序中创建三个线程,线程1接收事件标志。线程2和线程3则向发送事件标志。可以说,事件更为灵活。

2013-04-01 10:09:41 2550

原创 [SCons 有点翻译的scons学习] 1. 简单编译

安装scons=====这个就不详细说了,嫌麻烦可以直接sudo apt-get install scons。不嫌麻烦去下载源码安装。简单编译=====来看一个最简单的hello, world程序intmain(){    printf("Hello, world!\n");}然后创建一个SConstruct文件,编写Program('hel

2013-03-29 11:07:36 1226

原创 [SCons 有点翻译的scons学习] 总目录

1. 简单编译2. 简化编译过程3. 生成和使用库

2013-03-29 11:06:37 780

原创 [RTT例程练习] 2.8 消息队列message queue

消息队列(来自百度百科)消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息。消息队列是随内核持续的。描述程序运行的过程。首先创建了三个线程,三个线程处于同一优先级,但由于thread1首先被启动,所以它先运行,thread2,3紧随其

2013-03-29 10:35:00 2659

原创 [FreeModbus源码分析] 1.协议简介

MODBUS协议分为两层,一层是数据链路层,一层是应用层。在官网上,分别有两篇文档描述了MODBUS的数据链路层和应用层。当然,数据链路层有多种实现方式,官网给的是基于串行的方式。两篇文档分别为 MODBUS over Serial Line Specification and Implementation Guide 和 MODBUS Application Protocol Specifica

2013-03-27 13:13:50 2769

转载 BASH Shell中减号的用途!

tar -cvf - /home把/home压缩后,打印在stdout上tar -xvf -从stdin读取内容,并在当前目录解压例1纯粹是演示 '-'grep -xvf a  b 可以写成cat a | grep -xvf - b例2脚本中可以这样在crontab里添加一个任务{ crontab -l; echo "* * * * * /bin

2013-03-27 12:56:30 1436

转载 ssh登录慢的原因

ssh登录慢的原因很多人都遇到过,我总结了一下,目前我遇到过的有四种方法可以加快ssh速度,针对不同情况也许只有某一种适合你,下面以Debian和为例:1.关闭ssh DNS反向解析,原理不必说了吧vim /etc/ssh/sshd_config复制代码在文件尾部添加UseDNS no复制代码2.在/etc/hosts里面添加主机对应关系

2013-03-24 08:47:39 860

原创 [科学计算] 安装GNU的开源科学计算库gsl

gsl是GNU的一个开源科学计算库,c语言的。不过感觉使用人群小了点,最近一次更新是在2011年。GNU的项目有好多是费了的,纯粹的开源不寻求商业途径很难撑下去。下面是项目主页:项目主页这里可以下载到源码和user's guide。源码和其他开源的一样,解压后,输入./confiure, make, make install。最后一个一定要sudo make install,因为需

2013-03-22 21:05:15 1772

转载 ubuntu下安装tftp服务

1、安装相关软件包apt-get install tftpd      (服务端)apt-get install tftp      (客户端)  apt-get install xinetd  2、建立配置文件cd /etc/xinetd.d/vi tftp输入service tftp{           socket_type

2013-03-22 08:50:55 988

原创 [树莓派] 使用curl 自动填表单_登陆网页

因为我们校园网是通过网页认证的方式才能连上外网,对于我这种只有命令行没有GUI的人着实难为了一把。一开想通过python写脚本自动填写form,然后post上去,后来发现linux有 curl 命令,而且树莓派已经默认安装(我的ubuntu10.04就没有)。这下只需一行命令就可以上网了。首先,通过火狐浏览器的开发者模式,先登陆一遍校园网认证,看看表单都提交了哪些内容,或者直接看源

2013-03-20 13:34:39 2772 2

原创 树莓派自动连接无线

一般的无线linux应该都有驱动了。我使用的是 TP-LINK的  TL-WN821N 型号。插上就能识别。即通过 ifconfig命令可以看到mac地址。然后就是修改 /etc/network/interfaces 来填入 无线网络名和密码,省的每次手动填写。有一个不好的是我现在只有vi编辑器,而且校园网需要网页认证,只能蛋疼的用着vi,vi和vim还是有点区别的。修改文件内

2013-03-19 20:10:34 2248

programming f#

With this in-depth tutorial, F# team member Chris Smith introduces you to Microsoft's new multi-paradigm programming language. You'll not only learn how to use F# as a general-purpose language similar to C# and Visual Basic, but as a functional programming language for developing concurrent and math-intensive applications on the .NET platform. "Programming F#" gives you a head start on the fundamentals and advanced concepts of the official F# language version that will ship with Visual Studio 2010. This book will help you: get a clear understanding of functional programming, and how you can use it to write better code; learn language-oriented programming with F#, a style that lets you write code tailored to the domain of your application; use advanced F# concepts, such as having an existing .NET routine execute in parallel without having to write plumbing code to manage the threads; and, implement design patterns in F# for both object-oriented and functional programming Chris Smith tests every element of F# for the Microsoft development team, giving him a unique command of the language. With "Programming F#", you'll benefit from his expertise right away.

2015-01-31

modbuspoll

用来测试modbus协议 压缩包内已经含有 破解码

2013-03-29

野火Stm32-pdf教程

野火Stm32-pdf教程,讲解详细,配套其开发板练习。 代码是用库编程,移植方便。

2012-01-10

晶体管电路设计(上)

本书是“实用电子电路设计丛书”之一,共分上下二册。上册主要内容有晶体管工作原理,放大电路的性能、设计与应用,射极跟随器的性能与应用电路,小型功率放大电路的设计与应用,功率放大器的设计与制作,共基极电路的性能、设计与应用,视频选择器的设计与制作,共射-共基电路的设计,负反馈放大电路的设计,直流稳定电源的设计与制作,差动放大电路的设计,运算放大电路的设计与制作,下册则共分15章,主要介绍FET、功率MOS、开关电源电路等。本书面向实际需要,理论联系实际,通过具体的实验,通俗易懂地介绍晶体管电路设计的基础知识。

2012-01-09

bts7960原理图

bts7960是一款强劲的电机驱动芯片,这是根据其 datasheet设计的电机驱动电路。

2011-01-25

空空如也

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

TA关注的人

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