冀博
本科数学专业,对数学有着浓厚兴趣,擅长逻辑推理,喜欢模糊数学。
研究生计算机专业,方向为系统结构中的嵌入式设计。喜欢C,汇编,C ,嵌入式,uc/os.Linux内核,熟悉ARM7和ARM9内核。
工作方向:1)驱动开发
2)网络设备研发(边界设备)
兴趣爱好:
1)经济学,数学,历史。
2)喜欢咖啡,调酒,酿酒,品茶,厨艺
3)Linux内核,网络安全,加解密,DPDK,MTCP,fstack
4) 区块链研究
展开
-
嵌入式开发之工具移植--wpa_suppliant工具的移植和使用
本文主要讲解了wpa_suppliant的两种移植方法,和wpa配置文件的使用,以及wpa_suppliant,wpa_cli参数使用方法,最后讲解了wpa_suppliant如何使用配置文件和wpa_cli方式进行无线模块关联。目前可以使用wireless-tools 或wpa_supplicant工具来配置无线网络。wireless_tools的缺点是不支持WPA认证,wpa_supplicant支持WPA认证。原创 2013-10-16 19:35:46 · 6715 阅读 · 2 评论 -
嵌入式程序开发过程
嵌入式开发过程1.嵌入式开发过程由以下几部分组成:代码编程、交叉编译和链接、交叉调试和测试等2.代码编程 由于嵌入式系统是一个受资源限制的系统,故直接在嵌入式系统硬件上进行编程显然是不合理的。在嵌入式系统的开发过程中,一般采用的方法是现在通用PC上编程;然后通过交叉编译、链接、将程序做成目标平台上可以运行的二进制代码格式;最后将程序下载到目标平台上的特定位置,在目标板上启动运行这段二原创 2012-06-16 20:44:53 · 2304 阅读 · 0 评论 -
ARM2200下的中断编程二
ARM中断程序之外部中断四.ARM中断程序编写之外部中断前言:VIC中断控制器定义了4个外部中断,中断号为EINT0(14),EINT1(15),EINT2(16),EINT3(17)用来给用户进行编写外部中断(例如按键中断。。。)1. 在编写外部中断事先要对引脚功能选择寄存器(PINSEL0)进行配置(参照具体型号的ARM数据手册,此处以LPC2230进行配置)在LPC2230中:Eg:PINSEL1 = 32第二部外部中断还要对外部中断方式寄存器(EXTMODE)进行配置来选择每个EINT脚是电原创 2010-11-30 21:12:00 · 3268 阅读 · 0 评论 -
基于LPC2210的RTL8019AS以太网驱动系统设计(二)
基于LPC2210的RTL8019AS以太网驱动系统设计(二)五.发送数据包模块5.1发送数据包模块功能发送数据包时,先将待发送数据包通过远程DMA写入芯片RAM,给出发送缓冲区首地址和数据包长度,即可实现RTL8019AS的数据发送。RTL8019AS会自动按以太网协议完成发送并将结果写入状态寄存器。5.2发送数据包模快的数据结构1>_pkststruct _pkst{struct _pkst *STPTR;//前一个结构数组unsigned int length;//以太网帧报头长度长度1原创 2011-03-01 21:36:00 · 3816 阅读 · 5 评论 -
基于LPC2210的RTL8019AS以太网驱动系统设计(三)
<br />基于LPC2210的RTL8019AS以太网驱动系统设计(三)<br /><br />六.接收数据包模块<br />RTL8019AS接收数据有中断模式和查询模式两种。<br />Ø 采用中断模式时,需要在初始化程序中配置中断。当有一个正确的数据包到达时,RTL8019AS会产生一个中断信号,在中断处理程序中进行接收数据处理。<br />Ø 采用查询模式时,由主程序定时对接收缓冲区进行查询,当检测到有新的数据时,通过远程DMA方式将数据从RTL8019AS的RAM空间读出进行处理。<br /原创 2011-03-02 14:03:00 · 5855 阅读 · 1 评论 -
Linux下的串口编程(二)
Linxu下的串口编程(二) ---------------------------------------------------------Author :tiger-johnWebSite :blog.youkuaiyun.com/tigerjbEmail :jibo.tiger@gmail.comUpdate-Time :原创 2011-02-11 16:23:00 · 22993 阅读 · 20 评论 -
网络字节序
网络字节序一.字节序 字节序是由于不同的主处理器和操作系统,对大于一个字节的变量在内存中的存放顺序不同而产生的。 字节序通常有大端字节序列和小端字节序两种分类方法。 由于主机的千差万别,主机的字节序不能做到统一,但是网络上传输的数值,它们有统原创 2011-09-19 15:41:05 · 4245 阅读 · 0 评论 -
ARM SRS汇编指令的用法
SRSStore Return State onto a stack.SyntaxSRS{addr_mode}{cond} sp{!}, #modenumSRS{addr_mode}{cond} #modenum{!} ; This is a pre-UAL syntaxwhere:addr_modeis any one of the following:IAIncremen原创 2012-07-12 14:36:01 · 4768 阅读 · 0 评论 -
bare-mental project based on RVDS
----------------------------------------------------------------------------------------------------------Author :tiger-john(冀博)WebSite :blog.youkuaiyun.com/tigerjbEmail :jibo.tiger@gmail.comTiger声明:本原创 2012-05-26 14:19:33 · 2596 阅读 · 0 评论 -
GNU汇编程序中的分段
GNU汇编程序中的分段 .section伪操作.section {,””}Starts a new code or data section. Sections in GNU are called .text, a code section, .data, an initialized data section, and .bss, an uninitialized data sectio原创 2012-06-18 13:36:11 · 5761 阅读 · 1 评论 -
ARM7的体系结构
ARM7体系结构一.存储器的字与半字1.从偶数地址开始的连续的两个字节构成一个半字。2.能被4整除的地址的连续4个字阶构成一个字ARM指令的长度刚好是一个字,Thumb指令的长度刚好是一个半字二.存储器的存储方式(半字对齐,字对齐)1.半字对齐:存放一个数据的地址如果能被二整除,则它是半字对齐。反之,则是非半字对齐。2.字对齐:存放一个数据的地址如果能被四整除,则它是字对齐。否则,它是非字对齐。三.ARM处理器状态:ARM有两种处理器状态:ARM状态,Thumb状态。1. ARM状态:32位。处理器执原创 2011-01-10 15:18:00 · 5913 阅读 · 0 评论 -
一场流水线带来的灾难
一场流水线带来的灾难---------------------------------------------------------Author :tiger-johnWebSite :blog.youkuaiyun.com/tigerjbEmail :jibo.tiger@gmail.comTiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排斥别人转载tiger-john的文章,只是请您注明出处。3Q-------------------------------------------原创 2011-01-15 22:16:00 · 10084 阅读 · 36 评论 -
UART0串口编程系列(一)
串口编程(UART0)---------------------------------------------------------Author :tiger-johnWebSite :blog.youkuaiyun.com/tigerjbEmail :jibo.tiger@gmail.comUpdate-Time : 2011年1月23日星期日Tiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排斥别人转载tiger-j原创 2011-01-17 13:56:00 · 26807 阅读 · 11 评论 -
UART0串口编程系列(二)
串口编程(UART0)之中断方式编程---------------------------------------------------------Author :tiger-johnWebSite :blog.youkuaiyun.com/tigerjbEmail :jibo.tiger@gmail.comUpdate-Time : 2011年1月23日星期日Tiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排斥别人转载原创 2011-01-18 17:18:00 · 10365 阅读 · 5 评论 -
关于__irq 的使用
关于__irq 的使用__irq为一个标识,用来表示一个函数是否为中断函数。对于不同的编译器,__irq在函数名中的位置不一样,例如:ADS编译器中: void __irq IRQ_Eint0(void);Keil编译器中: void IRQ_Eint0(void) __irq;但是其意义一样,它所完成的任务是标识该函数为中断函数,在编译器编译是调用此函数时,先保护函数入口现场,然后执行中断函数,转载 2012-07-18 11:59:49 · 4828 阅读 · 0 评论 -
ARM微处理器中的常量
ARM微处理器中的常量学习ARM微处理器中的常量时,一直很懵懂,网上查了一下,终于弄明白,记录下来先。书上的原话是:“常量是一个8位的常数经循环右移偶数位(0、2、4、8、…、26、28、30)得到。ARM指令时固定的32位指令编码,不可能直接用32位表示立即数,采用上述间接方式表示的立即数在指令编码中需要12位(其中8位表示常数,4位表示循环右移)。这样一来,不是每一个32位常数都是合法的立即数转载 2012-07-12 17:57:04 · 2068 阅读 · 0 评论 -
嵌入式开发之工具移植--openssl移植
一. 移植openssl 1.解压openssl-1.0.1e.2.修改makefile#vim makefileCC = $(CROSS_COMPILE)gccAR =$(CROSS_COMPILE)ar $(ARFLAGS)rRANLIB=$(CROSS_COMPILE)ranlib3.执行make 和make install命令进行编译和安装#make#make installNo原创 2013-10-16 19:20:00 · 8629 阅读 · 0 评论 -
嵌入式开发之工具移植--wireless tools工具的移植和使用
摘要:本文主要讲解了wirless tools的概念和如何移植wireless tools,以及如何使用wireless tools中的工具设置无线网络。原创 2013-10-16 19:24:00 · 10418 阅读 · 1 评论 -
linux下嵌入式wifi开发工具移植
linux下嵌入式wifi开发工具移植 前段时间在做SDIO WIFI开发,在对wifi进行开发时,使用到了wifi配置工具。在Linux下嵌入式wifi开发工具主要有iwconfig和wap两种,以下就对这种工具进行详细的说明:(1)wireless-tools移植和使用 http://blog.youkuaiyun.com/tigerjibo/article/details/12784901(原创 2013-10-16 19:38:22 · 7290 阅读 · 4 评论 -
嵌入式网络中的抓包神器
我们在开发网络编程和研究网络协议时,通常需要运用到一些抓包工具对其进行抓包分析,来研究发送的数据包和接收的数据包是否正确,或者通过抓包来研究网络协议的工作流程。进行过网路编程的童鞋们,都知道在PC机器上有两大抓包神奇,那就是wireshark(wireshark不仅可以在XP下使用,也可以在Linux下使用)、tcpdump(只能在Linux操作系统下使用)。随着嵌入式系统的发展,目前嵌入式系统中原创 2013-10-02 11:25:18 · 5755 阅读 · 1 评论 -
嵌入式开发之工具移植--iperf移植和使用
[摘要]:本文主要讲解了iperf相关概念和主要参数的使用,以及如何移植到嵌入式开发环境,并分别介绍了在Linux和Windows下iperf的安装和使用。最后通过相关实例介绍如何通过iperf测试时延等网络性能参数。原创 2013-09-29 20:05:26 · 10033 阅读 · 0 评论 -
嵌入式开发之工具移植---tcpdump移植和使用
[摘要]:本文主要讲解了tcpdump相关概念和主要参数的使用,并通过事例来讲解tcpdump的用法,最后讲解如何将其移植到嵌入式开发环境,使其在嵌入式主控板中发挥其强大功能。原创 2013-09-29 19:18:01 · 5851 阅读 · 0 评论 -
嵌入式环境搭建之NFS
[摘要]:本文介绍NFS相关概念,NFS配置文件以及介绍如何设置NFS服务端和客户端,并检验是否设置成功;并对出现的异常进行分析,同时给出一个嵌入式配置实例。原创 2013-08-04 17:58:13 · 10305 阅读 · 0 评论 -
中断延迟时间的衡量
中断延迟1. 最小中断延迟:FIQ或IRQ的最小中断延迟是请求通过同步器的时间Tsyncmin加上Tfiq(共4个处理器周期)2. 最大中断延迟当FIQ使能时,最坏情况是正在执行一条装载所有寄存器的指令LDM(它耗时最长),同时发生了FIQ和数据中止异常,在响应FIQ中断之前要先把正在执行的指令完成,然后先进入数据中止异常,再马上跳转到FIQ异常入口,所以延迟时间包含:l Tsyncmax:请求通过同步器的最长时间,为2个处理器周期(由内核决定)l Tldm:最长的指令执行需要的时间。Tld原创 2011-02-14 13:03:00 · 4195 阅读 · 0 评论 -
ARM汇编之寻址方式
ARM指令集之寻址方式一. ARM7指令集ARM7处理器有两个指令集:32位的ARM指令集,16位的Thumb指令集。1> ARM指令集:效率高,代码密度高2> Thumb指令集:具有较高的代码密度。注:1. 所有的ARM指令集都是有条件执行的,而Thumb指令集仅有一条指令具备条件执行功能。2. ARM程序和Thumb程序可相互调用,相互之间的状态切换开销几乎为零。二. ARM处理器寻址方式寻址方式是指根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。ARM7处理器总共原创 2011-02-15 17:59:00 · 6437 阅读 · 1 评论 -
基于ARM LPC2210的以太网RTL8019AS驱动系统设计(一)
基于ARM LPC2210的以太网RTL8019AS驱动系统设计---------------------------------------------------------Author :tiger-johnWebSite :blog.youkuaiyun.com/tigerjbEmail :jibo.tiger@gmail.com开发环境 硬件环境:LPC2200 操作原创 2011-02-23 20:12:00 · 7379 阅读 · 13 评论 -
Linux环境变量
前言:1. 环境变量是操作系统环境设置的变量,适用于整个系统的用户进程; 2. 环境变量可以在命令中设置,但是用户注销的时候将会丢失这些设置值; 3. 若要重复适用,则最好在.profile中定义;环境变量的使用与本地变量的使用方法相同,4. 但是在使用之前,必须用export命令导出。一.Linux的变量种类按变量的生存周期来划分,Linux变量可分为两类:1.永久的:需要修改配置文件,变量永久原创 2013-01-17 14:15:22 · 7514 阅读 · 1 评论 -
GCC内嵌汇编语法
GCC Inline ASMGCC 支持在C/C++代码中嵌入汇编代码,这些汇编代码被称作GCCInlineASM——GCC内联汇编。这是一个非常有用的功能,有利于我们将一些C/C++语法无法表达的指令直接潜入C/C++代码中,另外也允许我们直接写C/C++代码中使用汇编编写简洁高效的代码。1.基本内联汇编GCC中基本的内联汇编非常易懂,我们先来看两个简单的例子:__asm__("movl%esp转载 2012-06-28 16:12:37 · 5212 阅读 · 1 评论 -
arm-linux-eabi 和arm-none-eabi的区别
编译器arm-linux-eabi 和arm-none-eabi arm-linux-eabi 用于编译 armlinux 代码arm-none-eabi 不指名操作系统,可以是linux, 也可以是vxworks等,arm-none-eabi 不包含 __linux__ 等特定宏,所以往往编译linux 内核的时候通不过。 编译器arm-linux-eabi 和arm-none-eabi arm转载 2012-07-11 11:07:57 · 7809 阅读 · 0 评论 -
UART0串口编程系列(四)
串口编程(UART0)之UC/OS(一)---------------------------------------------------------------------Author :tiger-johnWebSite :blog.youkuaiyun.com/tigerjbEmail :jibo.tiger@gmail.comTiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排斥别人转载tiger-john的文章,只是请您注明出处并和本人联系或留言给我。3Q----------原创 2011-01-22 14:01:00 · 6033 阅读 · 0 评论 -
UART0串口编程系列(五)
串口(UART0)之UC/OS(二)---------------------------------------------------------Author :tiger-johnWebSite :blog.youkuaiyun.com/tigerjbEmail :jibo.tiger@gmail.comUpdate-Time : 2011年1月29日星期六Tiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排斥别人转载原创 2011-01-23 21:38:00 · 5680 阅读 · 3 评论 -
arm c中字节对齐
__align__align 关键字指示编译器在 n 字节边界上对齐变量。__align 是一个存储类修饰符。它不影响函数的类型。语法__align(n)其中:n是对齐边界。对于局部变量,n 值可为 1、2、4 或 8。对于全局变量,n 可以具有最大为 2 的 0x80000000 次幂的任何值。__align 关键字紧靠变量名称前面放置。用法如果声明的变量的常规对齐边界小于 n,__alig原创 2012-07-05 15:18:16 · 5074 阅读 · 1 评论 -
ARM中断PC返回值分析
在ARM程序的开发过程中,对中断的处理是很普遍的、也是相当重要的。Realview MDK使用的RVCT编译器提供了__irq关键字,用此关键字修饰的函数被作为中断来函数编译,即在编译的过程中,编译器会自动添加中断处理过程中现场保护和恢复的代码,减小程序的开发难度,加快软件的开发过程。在理解__irq关键字的作用之前,先看一下ARM核对异常的处理过程。当产生异常时, ARM核拷贝CPSR寄存器的内转载 2012-07-18 13:01:45 · 3274 阅读 · 0 评论 -
armlinker的概念和option
armlinker option一.armlinker 概念1. 链接器根据链接的对象的构建属性,自动选择要链接的相应标准C或C++库变体。链接器可以链接ARM代码、Thumb代码和Thumb-2代码,并自动生成交互操作胶合代码,以便在需要时切换处理器状态。链接器还可以在需要时自动生成内联胶合代码或长跳转胶合代码,以扩展跳转指令的范围。2. 链接器支持的一些命令选项可用于原创 2012-05-28 21:35:14 · 3170 阅读 · 0 评论 -
令人纠结和不淡定的R14寄存器
IRQ中断异常嵌套时R14寄存器注意事项---------------------------------------------------------Author :tiger-johnWebSite :blog.youkuaiyun.com/tigerjbEmail :jibo.tiger@gmail.com---------------------------------------------------------1. IRQ中断异常执行过程:1> 执行用户模式下的程序2> 发生IR原创 2011-01-15 15:04:00 · 5100 阅读 · 5 评论 -
UART0串口编程系列之前奏篇
串口编程之前奏篇------------------------------------------------------------------------Author :tiger-johnWebSite :blog.youkuaiyun.com/tigerjbEmail :jibo.tiger@gmail.comTiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排斥别人转载tiger-john的文章,只是请您注明出处并和本人联系或留言给我。3Q-------------------原创 2011-01-19 23:18:00 · 11787 阅读 · 7 评论 -
基于LPC2210的RTL8019AS以太网驱动系统设计(四)
基于LPC2210的RTL8019AS以太网驱动系统设计终结篇七.页面切换子模块7.1页面切换子模块功能根据上一层模块传入的页号来切换页。RTL8019AS中的NE2000寄存器中用户可用于切换的页面有0,1,2三页,第四页为芯片保留。7.2页面切换子模块组成1> 读取命令寄存器(CR)中的值temp=ReadFromNet(0);2> 把命令寄存器中的PS1,PS0位清零,在清零过程中不能修改其他位,并且不能置TXP位。//命令寄存器中的PS1,PS0位清零注意txp位不能要temp=temp&0原创 2011-03-02 14:09:00 · 2635 阅读 · 3 评论 -
常见的shell变量
1.嵌入shell变量 1> CDPATH:此变量保留了一些目录信息,用冒号“:”隔开。 如果设置了此变量,在cd一个目录的时候,shell会先去查找此变量保存的值; 如果此变量中保存了cd切换的目录,则切换到该目录下。 2> EXINIT:此变量保存使用vi编辑器的初始化选项,如显示行号,并在第10个空格加入tab键, 命令为:EXINIT='set nutab=10';export E原创 2013-01-17 14:18:21 · 3030 阅读 · 1 评论 -
ARM中B指令和BL指令的区别
在ARM处理器里主要是通过3中情况在控制程序执行的:1.流水方式执行程序,PC的值是下一条指令的地址,即每执行一条指令PC都加一个字的偏移。2.通过跳转指令来控制程序执行。 B 跳转到指定的指令处执行。 BL 跳转执行,保存子程序地址并返回。 BX 跳转执行并切换到Thumb状态。 BLX 三种方式组合。原创 2012-07-02 15:10:41 · 15079 阅读 · 0 评论 -
ARM7异常
ARM异常一前言:异常?1.只要正常的程序流被暂时中止,处理器就进入异常模式2.如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常。异常有那些?异常有:复位,数据中止,未定义中止,预取值中止,软件中断。如果有两个以上的不同类型的异常同时发生,那么谁先谁后呢?à(优先级的问题?)异常优先级:当多个异常同时发生时,一个固定的优先级决定系统处理它们的顺序:1 复位2 数据中止3 FIQ4原创 2011-01-11 23:11:00 · 4040 阅读 · 0 评论