
嵌入式linux开发
chenkaifang
这个作者很懒,什么都没留下…
展开
-
vmware中已有的Ubuntu虚拟机如何扩展硬盘容量
最近想使用vmware中的Ubuntu虚拟机运行定制的llinux内核,想在现有的Ubuntu虚拟机中划分出一块分区给新的内核使用,而不是直接创建一块新的硬盘,但原有的Ubuntu虚拟机只有20G硬盘,于是想扩充容量。查阅了网上各种教程,感觉很多不是太靠谱,fdisk命令的内容也发生了变化,最明显 的事Units以sectors来表示而不是cylinders。这里把自己创建成功的过程分享一下。原创 2016-12-09 22:58:47 · 940 阅读 · 0 评论 -
Makefile学习
序 Linux C编程,免不了写Makefile,这里就来学习下。会不会 写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。 make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说, 大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见 ,makefile都成...原创 2019-07-21 17:29:29 · 616 阅读 · 0 评论 -
vim使用
vim:hjkl ctrl+u d f b i x dd u yy / :1,$s/old/new/g o/O插入新行 iaIA ?向上找 自动补全ctrl +n/p:x,y< 左缩进. 重复上条命令查找后,跳到上下查找位置 n/Nshift+6:行首 shift+4:行尾:/xxx \c 查找时忽略大小写:set invlist即可以将不可见的字...原创 2019-07-20 09:00:19 · 217 阅读 · 0 评论 -
Linux进程栈区、堆区、数据区、程序区
1、内存映射堆区栈区程序区数据区函数参数从右向左入栈栈溢出原理:栈中保存的局部变量缓冲区发生溢出,导致栈中其它存储单元内容被重写。导致溢出的常用函数strcpy、memcpy1>栈区:主要用来存放局部变量, 传递参数, 存放函数的返回地址。.esp 始终指向栈顶, 栈中的数据越多, esp的值越小。2>堆区:用于存放动态分配的对象, 当你使用 ...原创 2019-07-20 08:56:24 · 1899 阅读 · 0 评论 -
gdb调试积累
1、p打印字符串时不省略默认情况下,gdb调试时,太长的字符串只显示一部分,如果想要完全显示,可以设置:set print element 02、查看产生coredump文件的进程(1)gdb -c corefile 使用gdb调试core文件(2)info auxv 索引31对应的是core文件的应用程序调试coredump文件命令:gdb cored...原创 2019-07-16 08:13:05 · 526 阅读 · 0 评论 -
libxml2 c库使用
##libxml2库1、读取一个文件到内存xmlParseFile和xmlReadFile:xmlReadFile() is a bit more powerful as it is able to take an URL instead of a local file path,同时还带参。一般用xmlReadFilexmlReadFile、xmlParserOption:http:...原创 2019-07-08 20:57:40 · 2769 阅读 · 0 评论 -
善用用户自定义信号
kill -l可以看到用户自定义信号:然后就可以在程序中注册使用此信号。通过killall -10 xxx,就可以给程序发送用户自定义信号。kill -6 可以让程序产生段错误。...原创 2019-07-08 09:00:52 · 677 阅读 · 0 评论 -
shell命令积累
1、常用命令命令汇总man ls cd pwd cp rm mkdir rmdir mv touch head/tail uptime whoami shutdown cat find/locate grep mount sudo su diff tar ifconfig nc tcpdump netstat ethtool svn dd more/less| && ...原创 2019-07-08 08:56:41 · 407 阅读 · 0 评论 -
采用scons构建编译
背景一般小的工程直接手工编写Makefile就行了,对于中大型项目,可以用scons来构建Makefile然后进行编译。makefile那些繁杂的结构语法,完全使用python语言就可以进行编译脚本编写,scons非常好记忆和编译一些大的工程。SConstruct文件为scons构建描述文件Program生成可执行文件Object生成目标文件基本使用参考链接:https:/...原创 2019-07-08 08:05:01 · 1845 阅读 · 0 评论 -
Linux Shell拾遗1
1、echo添加 -e使用转义,env命令查看环境变量。2、变量赋值不要加空格,加$打印变量内容,export声明全局环境变量,export PATH=$PATH:/xxx/yyy新增环境变量,众所周知的环境变量HOME、PWD、USER、UID、SHELL。3、识别当前shell,echo $SHELL或echo $0。root用户的UID为0。4、$?上一个命令的执行结果,标准输入...原创 2018-07-21 20:47:30 · 282 阅读 · 0 评论 -
BOA+CGIC嵌入式web服务器开发
#基础知识+ CGI(Common Gateway Interface)是外部应用扩展应用程序与WWW服务器交互的一个标准接口。按照CGI标准编写的外部扩展应用程序可以处理客户端浏览器输入的数据,从而完成客户端与服务器的交互操作。在BOA服务器上,运行产着一个守护进程对端口进行监听,等待来自客户的请求。当一个请求到来时,将创建一个子进程为用户的连接服务。服务器通过CGI与外部程序和脚本之间进行交互...原创 2018-04-15 22:12:08 · 1249 阅读 · 0 评论 -
x86架构与ARM架构
#x86##名称演变+ X86架构是微处理器执行的计算机语言指令集,指一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。x86体系架构包含16位(8086)、32位和64位。+ x86-32:表示32位的x86体系架构,该系列也被称为IA-32或i386,甚至直接使用x86来代表这种体系架构。该架构的第一款CPU为Intel 80386,它完全取代了16位x86架构的CP...原创 2018-03-21 21:45:44 · 1340 阅读 · 0 评论 -
Debug Hacks学习笔记-1
+ 大多数Linux发行版关闭了内存转储功能,使用ulimit命令查看当前的内存转储是否有效:ulimit -c,如果为0则关闭了,使用ulimit -c unlimited或者设置一个上限可开启内核转储,当发生问题时进程的内存就会全部转储到内存转储文件core*中,可使用gdb调试生成的内核转储文件;+ gdb的break设置断点可以有函数名、行号、文件名:行号、文件名:函数名、+偏移量、-偏...原创 2018-03-25 19:10:01 · 183 阅读 · 0 评论 -
Linux驱动开发学习笔记-1
#ARM嵌入式Linux系统开发详解##工具链编译分为预处理、编译、汇编与链接,GNU将这些过程中使用到的工具包含在Binutils、GCC和Glibc中。Binutils包含与二进制处理相关的工具如as、ld、objdump、strip等;GCC包含各种语言的编译器;Glibc包含C库。##嵌入式系统的初始化嵌入式系统没有BIOS,用于启动的代码必须由用户完成,这部分代码为BootLoader。...原创 2018-03-24 21:52:19 · 191 阅读 · 0 评论 -
Ubuntu下编译linux内核
vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz的建立有两种方式。一是编译内核时通过“make zImage”创建,然后通过:“cp /usr/src/linux-2.4/arch/i386/linux/boot原创 2016-12-11 11:18:51 · 1246 阅读 · 0 评论 -
Ubuntu下编译linux、busybox、grub需要安装的包(持续更新)
在编译linux、busybox、grub等的过程中经常会报各种错误,大多数都是由于库文件或头文件找不到引起的,因为使用诸如make menuconfig等命令需要使用到相关的库,下面就列举出几种库。apt-get install build-essential kernel-package libncurses5-dev libqt3-headersbuild-essential原创 2016-12-10 21:01:22 · 770 阅读 · 0 评论 -
Linux卸载home独立分区
最近编译了一个新的Linux内核,安装的时候如果直接make install,那么镜像文件会和原来的系统放在一块,登录的时候账户、桌面配置等都是一样的,只是内核不一样,其它都是共享的,看不出两个内核有啥区别,因此想在一个独立的分区放置新的内核来启动,由于之前分的是/ /boot /home分区,不想破坏现有的分区(Win7和Ubuntu双系统),因此想把/home分区卸载掉,来放置新的内核原创 2016-12-14 20:56:37 · 12403 阅读 · 1 评论 -
嵌入式C惯用法
1、cpp里的c代码按照c的方式来编译和调用时常在cpp的代码之中看到这样的代码:#ifdef __cplusplusextern "C" {#endif//一段代码#ifdef __cplusplus}#endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码...原创 2019-07-28 17:54:51 · 289 阅读 · 0 评论