tools
文章平均质量分 63
kerneler_
做一个有技术追求的人
ps:目前公司太忙,暂没时间更新博客,,大家评论我尽量回复,望大家谅解
展开
-
交叉编译gdb遇到no termcap library found的解决方法
这星期在是用ejtag的时候缺少了gdb工具,因此自己需要手动编译一个gdb工具,编译过程中遇到了一些错误,翻阅了大量的网上资料解决了这些问题,从而也学习了一下交叉编译源码包的方法,这里做一个总结。 首先去官方网站下载gdb的源码包,我下载的7.4.1版本的源码包,解压开来,进入到源码包的根目录下。对于一个源码包,拿到手里首先要阅读的就是README,然后看一下INSTALL文件,这个原创 2012-08-11 14:47:13 · 8946 阅读 · 3 评论 -
ubuntu12.04修复grub方法
五一假期不知道出了什么原因,自己笔记本上的windows7启动不起来了,我的笔记本上装的是双系统,ubuntu还可以正常启动,所以就打算重新装一下win7.重装win7之后发现启动后直接引导进入win7,没有了grub引导选择操作系统,这个原因很简单,就是win7安装过程中覆盖了MBR,将原先MBR中的grub覆盖了,所以需要将grub修复。现在总结一下方法如下首先做一个ubuntu的启动盘,原创 2013-05-02 09:37:12 · 1678 阅读 · 0 评论 -
sja1000 CAN控制器波特率计算方法详解
这段时间调试公司处理器can总线,实现最基本的对发实验,can控制器是sja1000,起初因为是对发实验,同样2块开发板,同样内核配置相同,因此时钟以及波特率肯定一样,也没有仔细研究can的时钟以及波特率,今天有客户问can控制器的时钟以及波特率,下午仔细看了一下sja1000手册,并且写了一个由波特率和时钟来计算分频值的小程序,这里总结一下。 sja1000 can工作频率和波特率之间分频原创 2013-05-16 23:35:52 · 5708 阅读 · 2 评论 -
Ubuntu下解决bash 没有那个文件或目录的方法
因为之前电脑硬盘坏掉,维修换了新硬盘,今天重新安装了ubuntu,装好之后就赶紧搭建工作环境,将备份的资料拷贝进来,搭建交叉编译环境,但是发现,修改bashrc中PATH绝对路径指向交叉编译器后,在命令行下运行交叉编译器或出现说没有这个文件或者目录,但是按照绝对路径ls看又有这个文件,很是奇怪。后来找到问题,这次安装的系统是64位的,而这些编译环境都是32位的程序,因此需要安装对32位程序的支原创 2013-07-24 00:05:04 · 11018 阅读 · 1 评论 -
察看linux内核命令源码
用linux一段时间了,有时候想看看ls、cat、more等命令的源代码,在下载的内核源码中用cscope没能找到,在网上搜索了一下,将方 法总结如下:以搜索ls命令源码为例,先搜索命令所在包,命令如下:lpj@lpj-linux:~$ which ls/bin/ls用命令搜索该软件所在包,代码如下:lpj@lpj-linux:~$ dpkg -S /bin/lscoreu转载 2013-08-21 23:18:36 · 2078 阅读 · 0 评论 -
android源码下载方法
一、概述众所周知,Android移动操作系统是Google花费了很大的财力、物力及人力的前提下,推广到世界各个角落,以开放源代码的方式(当然也不是完全开放所有),使其在世界范围内迅速漫延开来,到目前虽说只有三四年的时间 ,火热程度,也不用我细说了,看看业界新闻就明白了。这里我们主要讨论Android系统源代码的下载,这里我们先了解两个工具:1、GitGit是面向Linux内核管理的一个转载 2013-08-22 19:38:23 · 955 阅读 · 0 评论 -
BMP、PCX、PNG、JPEG、GIF图形格式区别
BMP:Windows 位图 Windows 位图可以用任何颜色深度(从黑白到 24 位颜色)存储单个光栅图像。Windows 位图文件格式与其他 Microsoft Windows 程序兼容。它不支持文件压缩,也不适用于 Web 页。从总体上看,Windows 位图文件格式的缺点超过了它的优点。为了保证照片图像的质量,请使用 PNG 文件、JPEG 文件或 TIFF 文件。BMP 文件适转载 2013-12-01 13:56:11 · 4800 阅读 · 0 评论 -
动画演示linux下10个有趣命令
Linux最强大的一个特征就是它有大量的各种小命令工具,这也可以称做是它最有趣的一个地方了。在这些大量的有用的命令和脚本中,你会发现有少部分命令工具不那么有用的——如果你不愿意说是完全没用处的话。你要知道,Linux命令终端并不是总来干一些严肃的事情的,这里列举的几个没有实际用处、但很有趣的命令,它们的有趣并不是因为无用,而是真的有趣,接下来就让我们看看它们是如何搞怪的吧。一、cmatrix转载 2014-01-14 09:30:47 · 1695 阅读 · 0 评论 -
makefile中的自动化变量
makefile中的自动化变量$@,$%,$ 自动化变量 模式规则中,规则的目标和依赖文件名代表了一类文件名;规则的命令是对所有这一类文件重建过程的描述,显然,在命令中不能出现具体的文件名,否则模式规则失去意义。那么在模式规则的命令行中该如何表示文件,将是本小节的讨论的重点。 假如你需要书写一个将.c 文件编译到.o 文件的模式规则,那么你该如何为g转载 2014-04-14 14:27:18 · 1279 阅读 · 0 评论 -
repo使用简介
1 repo介绍Android 使用 Git 作为代码管理工具,开发了 Gerrit 进行代码审核以便更好的对代码进行集中式管理,还开发了 Repo 命令行工具,对 Git 部分命令封装,将百多个 Git 库有效的进行组织。1.1 清单库文件介绍一个清单库可以包含多个清单文件和多个分支,每个清单文件和分支都有对应的版本。清单文件以xml格式组织的。举个例子:Ø转载 2014-04-15 10:36:20 · 34381 阅读 · 0 评论 -
github初体验
作为一个内核工程师,github的大名一、创建github账号github是一个类似sf的免费项目管理及分享的服务平台,要想使用github提供的服务,你必须先注册成为github注册用户。github的网址是:https://github.com帐号注册成功后,点击New Repository,开始创建新版本库。用户可以创建类似于 your_userid.github.com原创 2014-04-15 14:57:02 · 1239 阅读 · 0 评论 -
深入解析Gtest
公司最近需要在用Gtest框架,进行修改,实现自己的测试框架,这段时间一直在看gtest源码,这篇文章从网上找到,对自己非常有帮助,贴出来供大家学习,转载地址:http://www.cnblogs.com/coderzh/archive/2009/04/11/1433744.html过几天自己也需要总结一下对gtest的理解,以备后用一、前言“深入解析”对我来说转载 2014-03-31 15:04:02 · 5437 阅读 · 0 评论 -
编译器的编译选项解析
尽管将源代码编译为二进制文件的四个步骤由不同的程序(cpp,gcc/g ,as,ld)完成,但是事实上 cpp, as, ld 都是由 gcc/g 进行间接调用的。换句话说,控制了 gcc/g 就等于控制了所有四个步骤。从 Makefile 规则中的编译命令可以看出,编译工具的行为全靠 CC/CXX CPPFLAGS CFLAGS/CXXFLAGS LDFLAGS 这几个变量在控制。当然理论上控制转载 2014-04-03 09:41:57 · 9754 阅读 · 0 评论 -
Makefile语法简介
0 Makefile概述 -------------------------------------------------------------------------------- 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要转载 2014-04-10 10:19:33 · 1091 阅读 · 0 评论 -
ARM工具链的eabi规范
EABI(Embedded Application Binary Interface),嵌入式应用程序二进制接口。 ABI的定义ABI描述应用程序与操作系统、应用程序与库、应用程序的组成部分之间的低层接口。ABI允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行。 EABI的具体定义Codesourcery上有一个这样的QA:https://support.c原创 2014-06-30 16:36:41 · 2424 阅读 · 0 评论 -
流编辑器sed使用总结及利用sed从文本中提取字符串的方法
sed 是一个编辑器,但它与其它大多数编辑器不同。除了不面向屏幕之外,它还是非交互式的,我们常用的vim编辑器则是交互式的。这意味着必须将要对数据执行的命令插入到命令行或要处 理的脚本中。sed 在一个文件(或文件集)中非交互式、并且不加询问地接收一系列的命令并执行它们。因而,它流经文本就如同水流经溪流一样,因而 sed 恰当地代表了流编辑器,可以对文件或者文件集批量的进行删除 替换 插入 追原创 2014-09-21 11:49:58 · 47808 阅读 · 0 评论 -
ubuntu安装JDK6方法
Ubuntu安装JDK6和JDK5在安装android on openwrt是出现错误:build/core/config.mk:271: *** Error: could not find jdk tools.jar, please install JDK6, which you can download from java.sun.com. Stop.需要安装JDK转载 2014-08-12 17:20:37 · 1993 阅读 · 0 评论 -
vim编码方式配置的学习和思考
从打开一个已有文件的过程来看这3个参数的区别,首先vim或利用fencs列表去匹配解码文件,正确解码后就设置fenc为当前解码格式,解码完成呢,接着会做一个转码,将文件转为enc所指的编码格式来显示出来。这就是这3个配置参数的作用原创 2014-09-30 16:20:41 · 4282 阅读 · 1 评论 -
vim查找替换命令
vi/vim 中可以使用 :s 命令来替换字符串。该命令有很多种不同细节使用方法,可以实现复杂的功能。:s/vivian/sky/替换当前行第一个 vivian 为 sky :s/vivian/sky/g替换当前行所有 vivian 为 sky :n,$s/vivian/sky/替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky :n,$s/vivi原创 2012-10-23 16:09:33 · 914 阅读 · 0 评论 -
BUG BUG_ON dump_stack
调试的时候很有用的东西:dump_stack 使用前,先在内核配置中把kernel debug选上:make menuconfig:kernel hacking-->kernel debug 作用:一些内核调用可以用来方便标记bug,提供断言并输出信息。最常用的两个是BUG()和BUG_ON()。当被调用的时候,它们会引发oops,导致栈的回溯和错误信息的打印。为什么这转载 2013-03-28 19:09:10 · 1526 阅读 · 0 评论 -
linux模块管理命令
1. lsmod 列出已经加载的内核模块 lsmod 是列出目前系统中已加载的模块的名称及大小等;另外我们还可以查看 /proc/modules ,我们一样可以知道系统已经加载的模块。 2.modinfo 查看模块信息 modinfo 可以查看模块的信息,通过查看模块信息来判定这个模块的用途。 3.modprobe 挂载新模块以及新模块相依赖的模块 modprobe转载 2013-02-27 20:17:12 · 1103 阅读 · 0 评论 -
嵌入式linux内核中下测试sata硬盘的读写速度
首先内核中要编译进去sata驱动,make menuconfig中将sata驱动选上,编译内核,在开发板上启动,然后fdisk -l查看磁盘分区,挂载上sata硬盘。 第一种方法,利用dd命令。 测试硬盘的读取速度: time dd if=/dev/sda1 of=/dev/null bs=1M count=10000 这条命令是从硬盘sda1中读取10G的数据写到原创 2012-08-15 15:31:19 · 8006 阅读 · 1 评论 -
linux下对磁盘分区详细步骤
今天晚上无事学习了一下linux下硬盘分区的知识,利用公司发的8G U盘实验了一下。把分区的过程总结一下。 linux下硬盘设备名IDE硬盘为hdx(x为从a—d)因为IDE硬盘最多四个,SCSI,SATA,USB硬盘为sdx(x为a—z),硬盘主分区最多为4个.所以主分区从sdb1开始到sdb4,逻辑分区从sdb5开始,逻辑分区永远从sdb5,开始设备名可以使用fdisk –l查看。原创 2012-08-15 20:30:54 · 5795 阅读 · 0 评论 -
time命令
time命令获取命令执行时间,其中包括命令的实际运行时间(real time),以及运行在用户态的时间(user time)和内核态的时间(sys time)。 它的使用方法是在待执行的命令前加上time即可。$ time fooreal 0m0.003suser 0m0.000ssys 0m0.004s原创 2012-08-31 14:28:38 · 4719 阅读 · 0 评论 -
ubuntu11.04下apache tftp以及ftp服务器的安装和基本配置
今天笔记本上的ubuntu系统出了问题,重装了系统,也把基本的服务器 apache tftp ftp都再做了一遍,也算是又复习了一遍,以前是做好了能用就算了,今天做完了总结一下,省得下次还会遇到麻烦。 要声明的一点是,由于我不是专门弄各种服务器的,我做的是嵌入式,我做这些服务器是为了能在开发板和我的主机之间通信传输一些基本的文件就可以,所以我的配置很简单,主要的就是更改服务器默认登录目录,只原创 2012-08-24 20:36:04 · 2548 阅读 · 0 评论 -
linux下ps命令用法
1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。 2)ps -A 显示所有程序。 3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。 4)ps -e 此参数的效果和指定"A"参数相同。 5)ps e 列出程序时,显示每个程序所使用的环境变量。 6)ps f 用ASCII字符显示树状结构,表达程序转载 2012-09-24 20:29:00 · 1381 阅读 · 0 评论 -
linux命令Tlist的安装
TagList插件,是一款基于ctags,在vim代码窗口旁以分隔窗口形式显示当前文件的代码结构概览,增加代码浏览的便利程度的Vim插件。官方网址:Tag List,当前最新可用版本为v4.5.1. 安装①下载taglist_45.zip②解压将taglist.zip文件解压至~/.vim文件夹下(压缩包中包含有插件文件plugin/taglist.vim和帮助文件doc/tagl转载 2012-10-25 17:22:43 · 7274 阅读 · 0 评论 -
linux下zip文件操作命令
linux zip 命令详解 功能说明:压缩文件。 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b ][-ll][-n ][-t ][-][压缩文件][文件...][-i ][-x ]补充说明:zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。 参 数: -A 调整可执行的自动解压缩文件。 -b原创 2012-10-25 17:07:20 · 1135 阅读 · 0 评论 -
patch补丁文件制作 使用和常见问题
1. 给源码树加 patch进入源码树的根目录下:cd SRC_DIRpatch -p 1 -p 1 指定忽略的目录个数,如你的patch头为 diff -urN orig/include/linux/module.h tgt/include/linux/module.h,则是对 $SRC_DIR/ 下的 include/linux/modue.h 应用该patch转载 2012-12-06 11:17:27 · 4606 阅读 · 0 评论 -
嵌入式linux的mdev机制
mdev是busybox自带的一个简化版的udev 作用是在系统启动和热插拔 或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的 使用mdev时不加参数就是用hotplug机制来决定创建什么样的设备文件。而用mdev -s是用sys文件系统提供的信息来创建设备文件的. mdev -s扫描/sys/clas原创 2012-12-14 15:19:24 · 8378 阅读 · 1 评论 -
系统时钟和硬件时钟以及date和hwclock命令
1. “系统时间”与“硬件时间” 系统时间: 一般说来就是我们执行 date 命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间。 硬件时间: 主板上BIOS中的时间,由主板电池供电来维持运行,系统开机时要读取这个时间,并根据它来设定系统时间(注意:系统启动时根据硬件时间设定系统时间的过程可能存在时区换算,这要视具体的系统及相关原创 2012-12-17 16:43:33 · 4374 阅读 · 0 评论 -
aptitude命令软件状态标志含义
linux用aptitude来搜索所需要的软件包的包名。就像这样:Linux $ aptitude search qtp ruby-qt4-webkit:i386 - QtWebKit bindings for the Ruby language p scim-bridge-client-qt - IME server o原创 2013-01-30 18:27:24 · 1703 阅读 · 0 评论 -
linux下scp命令详解
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录.scp命令的用处:scp在网络上不同的主机之间复制文件,它使用ssh安全协议传输数据,具有和ssh一样的验证机制,从而安全的远程拷贝文件。scp命令基本格式:scp [-1246BCpqrv] [-c ciphe转载 2013-02-01 16:51:07 · 1126 阅读 · 0 评论 -
ubuntu12.04安装ssh和telnet服务器
如果经常需要给客户调试程序,还需要察看自己电脑上的程序,这个时候ssh服务器和telnet服务器就显得很重要了。只要自己电脑安装了ssh或者telnet服务器,可以在另一台电脑直接登陆自己的电脑,察看程序代码。一:安装ssh服务器1.安装ssh服务器端$ sudo apt-get install openssh-server2.启动ssh-server$ sudo /etc原创 2013-02-01 16:43:11 · 4257 阅读 · 0 评论 -
制作和使用cramfs中遇到的问题解决方法
之前自己写的开发板使用手册上关于cramfs的使用自己也没有验证过,因为cramfs用的很少,nandflash一般都使用yaffs文件系统,资源利用率更高一些。 今天有客户要求使用cramfs文件系统格式烧写根文件系统到nand上,我就自己做了一遍,才发现命令的使用有问题,内核在启动过程中出现下面的错误信息: VFS: Mounted root (cramfs fil原创 2013-02-05 09:22:54 · 2503 阅读 · 0 评论 -
嵌入式开发板利用iptables实现NAT
最近为客户写应用程序来测试网卡,客户要求ping自己来检查是否通路,发现ping开发板自己IP时不管插不插自回环网线都能ping通,而我写的测试程序其实就是对ping命令进行的字符串分析,因此这样是不能检测出网卡的通路与否。后来知道ping自己ip时会路由到本地环回的虚网口,数据包根本没有到物理层从网卡发出。因此不管网卡好坏都可以ping通。组长跟我说用iptables命令来做NAT转换ip,可以原创 2013-02-24 11:02:43 · 3877 阅读 · 0 评论 -
配置内核并使用iptables做端口映射
要求将到主机 192.168.1.100:11101 的请求映射到内部网目标机的 sshd 服务端口上,即:192.168.2.101:22。配置内核(以 2.6.18 为例)如果执行 iptable -L 出现以下信息,那么就需要重新配置和编译内核:iptables v1.4.2: can’t initialize iptables table `filter’: Table d转载 2013-02-24 11:05:52 · 1807 阅读 · 0 评论 -
gtest实现架构简单分析
公司现在需要一套成型的测试框架,选中了现在开源的gtest测试框架,公司将这个任务交给了我,要在gtest框架基础上进行一些修改,这几天一直在看gtest源码,不懂C++,看起来有点难,不过还是有一些感悟,写下来以备后用 gtest测试框架是在不同平台上(Linux,Mac OS X,Windows,Cygwin,Windows CE和Symbian)为编写C++测试而生成的。它是基于xUn原创 2014-04-01 14:41:39 · 9989 阅读 · 1 评论