- 博客(35)
- 收藏
- 关注
原创 CheckSum总和校验码实现原理
在远距离通信中,保证数据完整性和准确性,在数据最后附上总和检验码是很有必要的,带上一个1字节的数据,效率高也起到了一定的安全性。Checksum:总和检验码,校验总和。在数据处理和数据通信领域中,用于校验目的的一组数据项的和。这些数据项可以是数字或在计算检验总和过程中看作数字的其它字符串。它通常是以十六进制为数制表示的形式,如 0102030405060708原理:通常我们
2024-12-15 20:34:01
565
原创 深入理解linux网络技术内幕第一笔
每个人去看一本书,都是基于某种目的的,漫无目的的看书,我认为是很荒废时间的,除非你特别闲,随便看,无所谓。有人说,我学这个东西是为了做储备,找一份相关的工作。有人说,我学这个东西,是现在工作中遇到了一些瓶颈,想通过看书来领悟大事的精神。有人说,我就是想扩大知识面,了解下linux网络技术,以免跟别人交流技术时,啥也不懂,说不过去,倍儿没面子。而我就是属于第二种,现在正从事无线网络相
2017-07-09 14:32:48
561
原创 轻轻松松来了解WIFI
我们今天采用QA的方式来学习。请跟着我的脚步走。1,WIFI是什么? 一种无线局域网络技术,通过媒介传播数据,靠射频发送信号,对频段有要求,工作在2.4G和5G。 基于IEEE802.11标准协议,只有遵循该协议的产品才可以相互交流,否则你不认识我,我不认识你,比如,蓝牙设备与WiFi设备之间,都可以通过射频把数据发到空中,但是都是垃圾数据,什么也干不了。2,W
2017-07-03 21:05:48
493
原创 消息认证码(MAC)的实现原理
一般密码相关的算法,个人是很难实现的,我们可以参照权威机构提供的方案,我想说美国标准与技术研究院 ,NIST(National Institute of Standards and Technology)。今天谈到的MAC,使用NIST提供的公开800-38B算法文档。这个MAC算法是基于对称密钥块算法,故称之为CMAC,还是使用了AES。算法原理:1,根据输入的key,产生两个子ke
2014-04-27 20:40:36
7913
原创 基于can总线节点ECU的设计
带有CAN接口的ECU设计是总线开发的核心与关键,其中ECU的CAN总线模块有几个功能单元构成――CAN控制器和CAN收发器。CAN控制器执行完整的CAN协议,完成通讯功能,包括信息缓冲和接收滤波。CAN控制器与物理总线之间需要一个接口――CAN收发器,它实现CAN控制器与总线之间逻辑电平信号的转换。CAN控制器和收发器完成CAN物理层和逻辑电路层的所有功能。应用层的功能则由软件来实现。
2014-04-17 19:55:00
4359
原创 UNIX文件系统相关概念
主要包含四项:文件,目录项,索引节点,安装节点。文件系统是一个特殊的数据分层数据结构。使用它时,必须先格式化。文件:有序数据串,可以进行读写,打开,创建,关闭,删除等操作目录项:就是个文件夹而已,来包含文件。实质上是跟文件一样的东西,找到里面的文件通过索引节点。索引节点:每个索引节点对应一个文件。安装节点:从这个点访问文件。文件系统组成是由 磁头,扇区,柱面级联而成
2014-03-08 13:24:40
855
原创 虚拟机上如何创建自定义分区或格式化自定义文件系统类型
在Virtual Box里面,选择设置->USB设备,勾选启用USB设备控制器,但是不要勾选启用USB2.0(EHCI)控制器,否则,插上U盘时,鼠标就死了。如果插上了之后,打开虚拟机后,在菜单栏中设备->分配USB设备就出现了IO usb字样为了方便给移动硬盘分区或格式化,单机 系统->系统管理->磁盘实用工具,然后找到你加载的盘,可以给你想要的磁盘进行分区或格式化成你想要的类型。
2014-03-08 13:24:14
2531
原创 linux文件系统中iNode的详细解释
linux文件系统中iNode的详细解释在linux中文件和目录都看作文件,每个文件都对应一个索引节点号,参见图一。然后每个索引节点号对应一个索引节点表,索引节点表是由许多个文件条目组成的。文件类型大概有如下几种- 普通的文件d 目录l 链接文件b 块设备文件c
2014-03-08 13:23:34
980
原创 linux中如何搜索文件或文件夹
在linux中,文件或文件夹都可以称之为文件,都对应着inode,仅有这个可以代表文件大小,位置等信息。如何用命令搜索,介绍下强大的find命令:find -name 后跟文件名 表示搜索指定文件。搜到了,就打印出来,搜不到,啥也不显示。find 目录 表示搜索该目录下的所有文件 如fine /find 目录 -name "sup*" 在该目录下 模糊搜索,搜索以sup
2014-03-08 13:23:18
902
原创 PC,虚拟机,开发板相互访问网络配置以及挂载NFS
开发板,pc,虚拟机相关IP设置:虚拟机:ifconfig eth1 192.168.200.208 netmask 255.255.255.0route add default gw 192.168.200.10NFS配置:编辑/etc/exports,在最后一行加入:mkdir /xwm/xwm *(rw,sync,no_root_squash)启动相关服务:
2014-03-08 13:22:50
781
原创 C语言按行读取实际字符
当使用fgets(buf,size,fp)函数读取文件中的行时,最后一行不包含换行符,那怎么让其它行也不包含呢?这么整char buf[50];while(!feof(fp))//如果文件没有到达末尾则循环{ fgets(buf,50,fp);//读取一行 if(feof(fp))//检测文件,如果到达末尾就读取实际字符,因为此时不包含换行符 {
2014-03-08 13:19:36
1644
原创 BCD码转十进制字符串
void BCDCodeToDecimalString(unsigned char x[],int len,char* y){ for(int i(0);i { if(x[i]>=0x00&&x[i] { y[i*2] = '0'; sprintf((y+i*2+1),"%x",x[i]
2014-03-08 13:19:09
1193
原创 关于C语言结构体成员变量偏移的一点思考
windows环境中,默认是4字节对齐。在VS2008环境中也可以进行设置对齐方式,同时下面的这句代码也可以进行设置预处理可以设置字节对齐方式 #pragma pack(1) 代表1字节对齐下面的处理方式以 1 字节对齐注意:如果结构体成员变量全部定义为 unsigned char型,也不用考虑字节对齐的问题。单字节的数据本来就是连续存放的一般来讲,关于成员
2014-03-02 14:23:03
1263
原创 关于feof函数使用的说明
函数原型: int feof(FILE *stream);功能:检测流上的文件结束符返回值:feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为非零值,否则为0。什么时候结束了,当读取到那个字节为0xFF时,就结束了。EOF是文本文件结束的标志,在文本文件中都是以ASCII码字符表示的,取值范围 0-127 共128个字符,EOF的16进制代码为0x1A(十进
2014-03-02 14:18:59
11573
原创 揭开linux中的tty与pts的神秘面纱
先说是ttytty:理解为终端就好了,比如,显示器,键盘等,一般通过串行总线来发送和显示信息,有波特率这个,一般38400.波特率不对,就会显示乱码啦,当然这个不需要我们设置,系统为你设置好了。对于嵌入式设备,连接电脑,就需要设置,一般15200.终端是一种字符型设备tty设备包括1,虚拟控制台,比如echo “hello” > /dev/tty 就在控制台显示。/dev
2014-03-02 14:18:32
855
原创 Makefile中变量$var与$$var的区别详谈
很多人对$var与$$var东西不理解,总是区分不开Makefile中的变量与shell中的变量,我来解释一下吧。希望对你有用。首先make精神就是实现自动化编译,是按照Makefile的规则来进行的,啥子规则呢,目标与依赖文件的规则。凡是目标后面有依赖,并根据依赖产生目标的才是干货,如果只有目标,而没有依赖,那就是伪目标,把它当标签看待就好了。在Makefile中文件中定义的变量就是
2014-03-02 14:18:03
1759
原创 C语言static关键字说几点
仅仅在C语言中。不谈C++,因为C++中类里面的static,又有很多东西,就不说了。1,用static声明的变量存放在静态存储区,这个东西只有程序结束时才没了。要不然一直存在,你可以随时改变它的值。2,用static修饰的变量或函数只在本文件起作用,在函数内部,作用域就在函数内部,依次类推。3,最想说的是,如果一个static变量放在头文件中,static int a = 2;在a.
2014-03-02 14:17:32
726
原创 Makefile中shell必知必会
如何在Makefile熟练准确使用shell,跟我一步步往下看:1:在Makefile文件的目标项冒号后的另起一行的代码才是shell代码。一定要使用TAB键 Makefile变量中赋值=后面可以有空格,shell是不可以有的eg:xx = aa1 // 这是makefile代码yy:xx = aa2 // 这是是makefile代码,makefil
2014-03-02 14:17:04
789
原创 Makefile中几个重要的函数
1、foreach: foreach是用来做循环用的,类似于for 语句,语法是:$(foreach ,,) 意思:把参数中的单词逐一取出放到参数所指定的变量中,然后再执行所包含的表达式。每一次会返回一个字符串,循环过程中,的所返回的每个字符串会以空格分隔,最后当整个循环结束时,所返回的每个字符串所组成的整个字符串(以空格分隔)将会是foreach函数的返回值。所以
2014-03-02 14:16:26
690
原创 inline关键字
inline就是个内联函数的关键字,只想说一点。有时候你想在头文件定义一个剪短的函数,发现有多个文件都包含这个函数的头文件,你肯定编译不过,提示什么函数重定义,这时,怎么办呢?在函数前面加个关键字inline就搞定了。
2014-03-02 14:15:53
595
原创 非对称加解密原理
非对称加解密需要两个秘钥:公开秘钥(publickey)和私有密钥(privatekey)。公开秘钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的秘钥,所以这种算法叫作非对称加解密算法。实现方案:加密原理:1,先产生一组随机数,32字节2,根据产生的随机数
2014-03-02 14:10:07
1225
原创 ubuntu下移动硬盘的快速格式化与分区
一:如何卸载设备? 卸载之前可以先去media目录下查看挂载点: cd /media 比如挂载点叫 A 卸载移动硬盘:umount /A二:如何删除设备中已经创建好的分区? 删除已经创建的设备分区,那么你必须先挂载设备,一般可以自动设置,自动挂载。 查看分区 :fdisk -l 比如设备/dev/sdb , 开始
2014-03-02 14:09:29
10825
原创 ubuntu12.04的一些常见操作,你懂吗?
虚拟机采用Virtual Box1,如何实现windows与linux ubuntu之间文本的复制与粘贴? 人机模式下,选中 设备->共享粘贴板->双向2,如何实现windows与linux ubuntu之间文件与文件夹的的复制与粘贴? 人机模式下,选中 设备->拖放->双向3,如何实现挂在网络文件系统?虚拟机成为服务器端的网络文件系统 默认的12.04是没有安
2014-03-02 14:08:55
771
原创 ubuntu12.04 如何修改root账户,或以root账户登录
Ubuntu 中的 root 帐号默认是被禁用了的。在这种情况之下,如果你想要使用 root 的权限来干些事情,就需要 sudo 指令。为了方便,我们就激活Ubuntu 中的 root 帐号。在 Ubuntu 中激活 root 帐号的过程如下:1,修改 sudo vi /etc/lightdm/lightdm.conf配置文件,修改完的整个配置文件是[SeatDefault
2014-03-02 14:08:16
774
原创 移动硬盘物理结构与详解
一:移动硬盘的组成:移动硬盘主要由外壳、控制部分(控制芯片,接口,电源),硬盘三部分组成。1、外壳:硬盘外壳一般是铝合金或者塑料材质,一些厂商在外壳和硬盘之间填充了一些防震材质。好的硬盘外壳可以起到抗压、抗震、防静电、防摔、防潮、散热等作用。一般来说,金属外壳的抗压和散热性能比较好,而塑料外壳在抗震性方面相对更好一些。2、芯片:一般对芯片要求:低功耗,高速度,性能稳
2014-03-02 14:07:37
16798
原创 EX2文件系统详解
对于EXT2文件系统,重点关注索引节点和数据块。文件是以簇为单位存放在硬盘中的,簇是由多个扇区组成的。任何ext2分区的第一个块从不受ext2文件系统的管理,这一块分区的启动扇区所保留。ext2其余的分区为快组,详细组成如下:分区=引导块+块组(N个)块组=超级块+组描述符+数据块位图+索引节点位图+索引节点表+数据块• 文件系统超级块的一个拷贝• 一组块组描述符的
2014-03-02 14:06:54
2889
原创 linux硬链接和软链接的详细说明
一:介绍对于一个文件来说,有唯一的索引结点(inode)与之对应,而对于一个索引结点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件。注意在Linux下是一切皆文件的啊,文件夹、新加的硬盘 ...都可以看着文件来处理的啊。软连接(symbolic link)又叫符号连接。符号连接相当于windows下的快捷方式。*************
2014-03-02 14:06:22
979
原创 被遗忘的volatile关键字
1,是类型修饰符,用来修饰被不同线程访问和修改的变量,如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。2,作用:作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.3,使用场景: 优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份 一个中断服务子程序中会访问
2014-03-02 14:05:47
627
原创 C语言中的''\0",让你透彻到底
C语言字符串末尾的''\0",很重要,它不占字符串的实际长度,但是比如字节数为5的时候,最后一个字节不为\0的话,那么输出后的就是乱码。所以,最好主动在字符串末尾加\0的重要性。但是,哪些情况可以不用加"\0"呢,编译器会自动补上?1,对于初始化指针,char *p="abcde"; 最后不用加零,自动补上。2, char s[]="abcd"; 对于这种未指定长度的字符数组,不
2014-03-02 13:38:36
3156
1
原创 如何让你做软件测试不再迷茫?
我工作几年了,一直做测试,当初大学毕业的时候,跟大家一样,都是混日子,觉得干测试,怎么那么无聊,像SB一样的,别人说什么,你做什么。事实上,现在做测试刚入行的人,依然是这样,那我们如何成长,如何改变自己的处境呢? 我结合自己的工作经验与个人成长,总结了5个多:多读书,多体会,多实践,多分析,多总结, 再谈谈工作中我们该如何做: 1,你做测
2014-03-02 13:30:00
1528
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人