- 博客(537)
- 资源 (53)
- 收藏
- 关注
原创 inittab文件
一、inittab文件背景(1)init进程的作用 使用uboot下载Linux内核时,环境变量bootargs决定了kernel向根文件系统传递的参数,这些参数包括 bootargs=noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0 root:指定了根文件系统在Flash分区中的位置 c
2014-03-05 09:14:24 695
转载 android不支持tab补全和ctrl+c的解决办法
进入android shell后会打印:sh: can't access tty; job control turned off输入tab键没有补全,输入ctrl+c没有终止到下一行,而是输入一个乱七八糟的字符,没有cp命令等等等等,你会发现,这他妈还是linux吗?这日子没法混了!要支持一些常用的命令,需要重新编译一个busybox,make menuconfig
2014-03-04 09:58:49 2101
转载 Android 的 init.rc 文件简介
init.rc由许多的Action和Service组成。每一个语句占据一行,并且各个关键字被空格分开.由 # (前面允许有空格)开始的行都是注释行(comment)一个actions 或 services 的开始隐含声明了一个新的段,所有commands 或 options 属于最近的声明。在第一个段之前的 commands 或 options 都会被忽略每一个action
2014-03-01 23:13:36 693
转载 android源码结构
Android 2.1|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts
2014-03-01 18:51:07 866
转载 Android自带的toolbox分析及扩展
转自:http://blog.csdn.net/a345017062/article/details/6250619 折腾了几天,被Android那点儿少得可怜的shell命令折磨的死去活来,终于下定了革命的决心。看一下怎么把渺小的toolbox替换成伟大的busybox吧。先大致描述一下Android系统中的shell程序部分。shell实现分为两部分:一、shell解释器和内置
2014-03-01 18:29:16 702
转载 Linux编译链接环境变量
静态库链接时搜索路径顺序:转自:http://my.oschina.net/alphajay/blog/339331.ld会去找GCC命令中的参数-L2.再找gcc的环境变量LIBRARY_PATH3.再找内定目录 /lib /usr/lib /usr/local/lib 这是当初compile gcc时写在程序内的动态链接时、执行时搜索路径顺序:1
2014-03-01 18:20:43 1042
转载 A20 编译
android 源码编译分为 2 个部分,一部分是 linux 内核编译,这部分包括 uboot,另一部分是 android 源码编译。所以编译时各自单独编译,编译成功能,最近单独打包成最终烧录的镜像文件。2.1 源码结构说明首先把源码包 A20-420-V12.tar.bz2 复制在 XHD-A20 目录下,并解压xinhangdao@xinhangdao:~/XHD-A20$
2014-02-27 09:57:55 1531 1
转载 Linux的控制台(TTY/PTY)与多任务(MULTI-TASKING
Linux是一个多任务操作系统,可以方便的在一个控制台(或shell)下同时执行多条命令,达到这样的目标并不是一件容易的事情。本文帮助理解下面几个跟控制台有关的概念:tty/pty,control terminal,session,process group,signal;并设计实现一个多任务控制程序bash 的多任务支持熟悉Linux的同学都知道,bash支持同时跑多个任务,
2014-02-18 16:01:18 2179
转载 c++:类中成员变量是引用
#include using namespace std;class A{public: A(int i=3):m_i(i){} void print() { cout"m_i=" }private: int m_i;};class B{public: B(){} B(A&
2014-02-14 13:51:09 951
转载 C++编程基础之函数指针
1、函数指针 定义:函数指针是指指向函数的指针。像其他指针一样,函数指针也指向特定的类型。函数类型由其返回值以及形参表确定,而与函数名无关。e.g void (*pf) ( char,int );这个语句将pf声明指向函数的指针,它所指向的函数带有一个char类型,一个int类型,返回类型为void。我们可以这样理解:我们怎么定义普通的指针呢,如我们定义一个int型的指针,i
2014-02-11 12:54:14 797
原创 arm uclibc中实现backtrace
在arm中很多平台并无法使用gclibc环境,无法使用gclibc给出的backtrace,在这种情况下如果应用程序出错,出现段错误等情况,无法准确的定位出段错误的根源,经过研究之后终于折腾出了适用于uclibc环境中的dumpstack方法#include #include #include #include #include #include #includ
2014-01-22 21:19:48 7729 4
转载 dladdr - 获取某个地址的符号信息
名称 dladdr() - 获取某个地址的符号信息 概要 cc [ flag]... cfile ... -ldl [library]... #include dlfcn.h int dladdr(void *address, Dl_info *dlip); 多线程应用信息 该例行程序是线程安全的。 说明 dladdr() 是使用户能够直接访问动态链接设备(在编译
2014-01-22 20:57:41 29730
转载 自己动手实现arm函数栈帧回溯
内核版本:2.6.14glibc版本:2.3.6CPU平台:armglic中其实有这些函数,当时用的uclib版本较低,没有这些函数,但又需要,只能自己实现了(较高的版本应该有这些函数,换版本很麻烦),而且可以加深自己对这方面的理解.原理性的东西就不深入讲解了,直接上例子![plain] view plaincopyprint?#in
2014-01-22 18:10:41 3034
转载 善用backtrace解决大问题
一.用途:主要用于程序异常退出时寻找错误原因二.功能:回溯堆栈,简单的说就是可以列出当前函数调用关系三.原理:1. 通过对当前堆栈的分析,找到其上层函数在栈中的帧地址,再分析上层函数的堆栈,再找再上层的帧地址……一直找到最顶层为止,帧地址指的是一块:在栈上存放局部变量,上层返回地址,及寄存器值的空间。2. 由于不同处理器堆栈方式不同,此功能的具体实现是编
2014-01-22 17:39:23 1688
转载 Linux下利用backtrace追踪函数调用堆栈以及定位段错误
一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的。在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈。int backtrace(void **buffer,int size) 该函数用于获取当前线程的调用堆栈,获
2014-01-22 17:22:42 892
转载 监控进程使用内存 getrusage 函数简介及使用
用这种方法可以判断程序是否有内存泄露情况#include #include #include #define RUSAGE_SELF 0#define RUSAGE_CHILDREN -1 int getrusage(int who, struct rusage *rusage);getrusage函数有
2014-01-22 16:49:17 5061
转载 linux c编程system与exec等区别简介
//首先来看一个示例:#include #include #include #include int main(){ int status; if((status=system("date")) printf("system error.\n"); exit(0); } printf("ex
2014-01-17 16:29:54 2170
转载 【原】解决PS1的显示问题,busybox的/u /h特殊字符解析问题
在制作文件系统的时候,会用到 /etc/profile,里面有PS1变量,一般为:PS1="[/u@/h /W]# " /u等特殊字符分别表示的是当前用户、主机名和当前目录。但是我制作完以后进入到系统,发现还是原样显示上述字符。 网上找了半天没找到。后来一个同事帮我搞定了,原来是busybox的配置问题,分享一下:make men
2014-01-04 11:48:21 2137
转载 嵌入式基础:ARM下GCC交叉编译器的制作
1.下载所需文件以下是我在Cygwin环境下制作arm-gcc(uclibc)交叉编译器中所需要的文件:binutils-2.14.90.0.8uClibc-0.9.27gcc-3.4.2linux-libc-headers-2.4.29PS:一般来说这里还需要下一些patch,因为我对编译器的理解还不够,加上这个事情是工作内容,还有些其他的特殊需求,为了省麻烦,我
2013-12-27 15:31:57 1194
转载 ARM926的Linux工具链的制作和测试
ARM926的Linux工具链的制作(续 : 基于uclibc)本次制作与前一篇类似,出来用uClibc代替了Glibc下载的代码目录 root: /home/lake/arm-uclibc-linux目标目录 dir: /home/lake/arm-uclibc-linux/uclibc-tools1. 准备工作:下载 Binutil2.17/Gcc3
2013-12-26 15:56:26 2764
转载 ARM926的Linux工具链的制作(续 : 基于uclibc)
本次制作与前一篇类似,出来用uClibc代替了Glibc 下载的代码目录 root: /home/lake/arm-uclibc-linux目标目录 dir: /home/lake/arm-uclibc-linux/uclibc-tools 1. 准备工作: 下载 Binutil2.17/Gcc3.4.6/uClibc0.9.28/Linu
2013-12-26 15:55:54 2355
转载 GCC 4.5.1 configure参数中文注释
只翻译了部分自己会用到的参数,翻译的不好,请见谅转载请注明出处:Koangel使用方式: ./configure [选项]... [VAR=VALUE]...To assign environment variables (e.g., CC, CFLAGS...), specify them asVAR=VALUE. See below for descriptions of s
2013-12-26 15:37:49 3290
原创 arm linux uclibc交叉编译工具链的制作
制作交叉编译工具链是件麻烦的事情,因为交叉编译ntfsprogs不得已从头做了一遍,现在把流程总结在这里,供以后参考。原料:binutils,gcc,linux kernel,uclibc我所用的版本为:binutils-2.16gcc-3.4.3linux-2.6.14uClibc-0.9.28基本流程:1.编译binutils
2013-12-26 11:28:47 8262 2
转载 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH和LIBRARY_PATH的用法
C_INCLUDE_PATH(for C header files)和CPLUS_INCLUDE_PATH(for C++ header files)的环境变量是指明头文件的搜索路径,此两个环境变量指明的头文件会在-I指定路径之后,系统默认路径之前进行搜索。LIBRARY_PATH指明库搜索路径,此环境变量指明路径会在-L指定路径之后,系统默认路径之前被搜索。例如:
2013-12-25 19:14:07 5093
原创 制作ARM平台交叉编译工具链
ARM平台交叉编译器的制作主机环境:Ubuntu 12.04.1 64bit gcc version 4.6.3 1. 下载最新源码包binutils-2.22.tar.gz gcc-4.7.2.tar.bz2 gmp-5.0.5.tar.xz mpfr-3.1.1.tar.xz mpc-1.0.1.tar.gz glibc-2.16.
2013-12-25 17:20:58 4943
转载 ubuntu12.04LTS-ARM平台交叉编译器的制作
主机环境 Ubuntu 12.04.2 LTS(cat /etc/lsb-release) gcc version 4.6.3Download source codebinutils-2.22.tar.gzgcc-4.7.2.tar.bz2 gmp-5.0.5.tar.xz mpfr-3.1.1.tar.xz mpc-1.0.1.tar.
2013-12-25 16:11:06 1553 1
转载 文件系统缺少库:-/bin/sh: hello: not found问题及解决方法
1、问题描述:运行一个程序,会出现-/bin/sh: xxx :not fount打开/sbin下会发现这个xxx可执行文件是存在的,这可能是文件系统中(/lib)中缺少某些库导致的。 2、解决方法-以hello.c示例以hello.c为例,编译出了hello可执行文件,放到了/sbin中,并且在/etc/init.c/rcS中添加:/sbin/he
2013-12-23 17:27:24 12045 3
原创 关于linux装载器(如何解决应用程序跑不起来not found等问题)
关于linux动态链接共享库(如何解决应用程序跑不起来not found等问题)所谓linux中的Share Libraries和Dynamic linking扮演的角色类似Windows 中的dll文件一样。现在的OS操作系统中,大部分的程序都是动态链接的,就是说,很多程序在编译成可执行程序时,会共享一些库。这样会带来至少一个好处:应用程序可以减小自己的体积,对于各种各样的应用程
2013-12-23 17:08:16 7323
转载 创建根文件系统
一. 编译安装busybox在busybox代码安装文档里有说明:[cpp] view plaincopymake menuconfig # This creates a file called ".config" make # This creates the "busybox" execut
2013-12-20 23:03:00 778
转载 ARM-交叉编译器各版本的区别
1、EABIarm-2008q3-39-arm-none-eabi Sourcery G++ Lite 2008q3-39 All versions... Sourcery G++ for ARM EABI is for use in bare-metal and/or RTOS environments.(适用于编译裸机或RTOS环境上的应用,比如u-boot等);Run-Time Li
2013-12-20 23:01:39 15688
转载 利用GoAhead构建嵌入式web应用
摘要:详细介绍了开源嵌入式web服务器GoAhead的原理,并结合具体实例说明如何利用它构建嵌入式web应用。Key words: GoAhead, embedded web server, web applicationAbstract: This paper introduces the principle of open source embedded web server
2013-12-20 22:41:26 858
转载 交叉编译时候如何设置连接库的搜索路径
交叉编译的时候不能使用本地(i686机器,即PC机器,开发机器)机器上的库,但是在做编译链接的时候默认的是使用本地库,即/usr/lib,/lib两个目录。因此,在交叉编译的时候,要采取一些方法使得在编译链接的时候找到需要的库。首先,要知道:编译的时候只需要头文件,真正实际的库文件在链接的时候用到。(这是我的理解,如果有不对的地方,敬请网上各位大侠指教) 然后,讲讲如何在交叉编译链接的时候
2013-12-20 21:11:17 2254
转载 使用Unicode版的预定义宏__FUNCTION__
在C++中支持一种预定义宏。比如:__FILE__: 就是当前源代码文件名__LINE__: 就是当前源代码的行号这些宏可以在printf等语句中直接作为字符串使用,调试的时候很方便。如下代码所示:int _tmain(int argc, _TCHAR* argv[]){ printf("Line:%d", __LINE__); return 0;}
2013-12-12 09:51:03 3173
转载 调试常用的 __FILE__, __FUNCTION__, __LINE__
调试常用的 __FILE__, __FUNCTION__, __LINE__没想到 VC6 不支持 __FUNCTION__所以我写了如下的奇怪代码//用来记录当前行和当前函数//也可说是记录 堆栈void log_stack(const char *file, int line, const char * function);//当然还要对 _
2013-12-12 09:34:58 1737
转载 在 C/C++ 语言中特定的宏,如 __FUNCTION__
__FILE____LINE____DATE____TIME____FUNC____FUNCTION__ 在Visual Studio 2005中,默认情况下,此特性是激活的,但不能与/EP和/P编译选项同时使用。请注意在IDE环境中,不能识别__func__ ,而要用__FUNCTION__ 代替。Comeau的用户也应使用 __FUNCTION__
2013-12-12 09:33:57 612
转载 git使用说明
Linus为Linux Kernel Project发起的版本控制项目。HEAD代表当前最新状态。tag为某个状态的标签。SHA1为每个提交日志的唯一标识。install:apt-get install git-coregit clone:git仓库可以使用git clone获得:git clone git://url也可以通过浏览器浏览
2013-12-10 16:04:31 561
转载 git使用心得笔记
GIT使用入门Part 1第一章 基本原理git是一个版本控制系统。官方的解释是:版本控制(Revision control)是一种软件工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。按我的白话文解释就是:一群志同道合的人身处祖国各地,希望来合作开发一个项目,假设这个项目是使用c语言写的(当然用任何语言都可以的)。那么大家怎么合作呢?用信件?效率太低。用邮件
2013-12-10 15:48:05 714
原创 ubuntu java jdk的安装(linux)
在ubuntu中使用apt-get install sun-java6-jdk无法安装,因为该死的sun违背了linux的开源精神,被ubuntu踢出,而采用了open-java,官方软件源找不到sun-java,其他软件源配置半天,可是依然找不到能够下载的jdk索性进入oracle官网,寻找jdk的安装包 寻找要安装的安装版本,安卓2.3以下需要java5,以上需要java6
2013-12-06 11:05:20 1026
原创 bash调用过程
今天因为安装了一个交叉编译器,安装程序暴力修改bash配置文件,导致开机登录时无法调用.bashrc,以前的环境变量都找不到了,经过man bash之后发现其中这么一段大致意思是说按照顺序在家目录找寻.bash_profile .bash_login .profile文件,当安装程序暴力添加了一个.bash_profile文件时,过去的.profile
2013-12-05 10:50:45 933
强大的右键管理工具
2017-09-08
split_bootimg.pl 解包boot.img initramfs ramdisk工具
2015-09-06
autoit3.zip
2013-05-16
存储服务器rootfs 1.02
2013-04-06
存储服务器rootfs
2013-04-06
嵌入式rootfs
2013-04-03
H.264Dec-Encode
2013-03-14
zlib-1.2.3.tar.gz
2013-03-08
dropbear-0.52.tar.gz
2013-03-08
linux usb摄像头源代码
2013-03-07
s3c6410 自制 uboot 源代码 第二版 2.0
2012-10-11
s3c6410 自制 uboot 源代码
2012-10-10
reqPackages.rar
2012-05-23
Nitro Pro 7 破解 PDF编辑制作工具
2012-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人