linux
caoyaobin
这个作者很懒,什么都没留下…
展开
-
嵌入式Linux学习计划
自学嵌入式已经有一年的时间了,从刚开始的迷茫无助到现在的逐渐明朗,中间经历的太多太多了。俗话说万事开头难,刚开始的时候,根本就不知如何开始,上网查资料被一堆堆新名词搞的找不到北,去图书馆看书也是找不到方向。又是arm,又是linux,又是uboot头都大了。不知道自己究竟从哪里开始。当看过几本介绍嵌入式的基础教材过后,才逐渐有了一点方向,虽说刚开始看书的时候朦朦胧胧的。但是当几本书看过之后,对嵌入转载 2015-01-26 18:20:11 · 594 阅读 · 0 评论 -
LINUX的运行级别
一、linux共有七种运行级别,内容如下:级别0:停机状态,系统默认运行级别如果设为0,将不能正常启动;级别1:单用户模式,只允许root用户对系统进行维护;级别2:多用户模式,但没有NFS(http://baike.baidu.com/link?url=rCyDjdhZBUgslYvIJfrXyf4ncw3Hds-d5o8ewvK9H0C-Q-NqdTBsgGYZUIzEgz8d)转载 2016-08-09 20:23:43 · 320 阅读 · 0 评论 -
VNCSERVER的配置
安装成功vnc-server后,需要进行如下配置才能正常使用vnc-viewer进行访问:1,#vncserver 进行密码配置2,修改配置文件# vi /root/.vnc/xstartup 1)把twm &注释掉(#twm &) 2)最后增加一行 gnome -session &3,修改vnc服务文件# vi /etc/sy转载 2016-08-09 20:35:11 · 711 阅读 · 0 评论 -
systemctl-chkconfig-service
ubuntu\opensuse\centos7中,systemctl是systemd下的一个工具。该命令是用来替代service和chkconfig两个命令的。在目前很多linux的新发行版本里,系统对于daemon的启动管理方法不再采用SystemV形式,而是使用了sytemd的架构来管理daemon的启动。一、runlevel 到 target的改变在systemd的管转载 2016-08-11 11:08:36 · 350 阅读 · 0 评论 -
gcc链接g++编译生成的静态库和动态库的makefile示例
使用c++开发程序或者库时,将库提供给其他人使用。然而使用者是使用c开发的程序,链接g++编译生成的库时,于链接gcc生成的库,有所不同。首先是静态库,以链接g++编译生成的libmylib.a为例子mylib依赖于pthread,rt,math库,链接时必须放在mylib之后。同时-Wl,--no-as-needed -ldl添加在末尾是必须的。arm和x86有些不同,就是a转载 2017-01-31 12:17:36 · 2317 阅读 · 1 评论 -
Makefile有三个非常有用的变量分别是$@,$^,$<
假设我们有下面这样的一个程序,源代码如下: /* main.c */ #include "mytool1.h" #include "mytool2.h" int main(int argc,char **argv) { mytool1_print("hello"); mytool2_print("hello"); } /* mytool1转载 2017-01-31 12:43:04 · 283 阅读 · 0 评论 -
什么是EPEL?
最近在新安装了fedora 26,用户体验很好,在使用之前需要安装配置epel,本文主要介绍epel: EPEL的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方原创 2017-07-15 13:06:08 · 3751 阅读 · 0 评论 -
Cannot connect to the Docker daemon at unix:///var/run/docker.sock.??
安装后第一次使用Docker,当使用pull下载tensorflow镜像时,出现了如下错误,说docker后端服务没用运行。原来是没有启动docker,本人使用的fedora 26,使用systemctl命令启动docker即可解决该问题。原创 2017-07-15 16:21:38 · 4283 阅读 · 0 评论 -
fedora 26中基于docker运行安装tensorfolw的总结
时间2017.07.17,自从拿到研究生毕业证到今天已经半月,因为下个月才去公司报道,所以后着脸皮还在实验室呆着,学习环境好。 今年的暑假异常的炎热,整个7月都被笼罩在酷暑的当中,为了毕业整整忙了半年,虽然每天很累,但是很充实。暑假一下子让清闲起来,反而觉得空虚难耐。这几天给电脑重新装了系统,将用了三年的fedora 22换成了最新的fedora26,说起喜欢的fedora发行版,原创 2017-07-17 11:41:29 · 2066 阅读 · 0 评论 -
linux下gdb单步调试
用 GDB 调试程序GDB 概述————GDB 是 GNU开源组织发布的一个强大的 UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像 VC、 BCB等 IDE的调试,但如果你是在 UNIX平台下做软件,你会发现 GDB这个调试工具有比 VC、 BCB的图形化调试器更强大的功能。所谓 “寸有所长,尺有所短 ”就是这个道理。一般来说, GDB主要帮忙你完成转载 2015-10-10 16:39:57 · 1171 阅读 · 0 评论 -
gdb单步调试
1、首先需要用gcc(g++) 对源文件进行编译生成可执行文件,并且在编译时加上选项-g,把调试信息加到目标文件中。2、假设生成的可执行文件为test,那么gdb test 可以用gdb打开test文件,然后通过break linenum设置断点。可以输入list查看源文件和行号,方便设置断点。断点设置好后就可以run命令运行到断点处了。一、初始化输入gdb进入gdb调试环境。或者转载 2015-10-10 16:45:39 · 602 阅读 · 0 评论 -
arm-linux-gcc裸机程序开发(三)
中断问题与完整工程测试一. 中断问题 中断对编写程序非常的重要,所以程序对中断处理的好坏将直接影响程序的优劣,对实时性要求较高的系统更是如此。对于ADS2.0,在编写中断处理程序的时候,只需要在程序前面加上"_irq"这个关键字,ADS就会自动为我们保存中断现场,等程序返回的时候自动恢复现场,细节无须我们关心。当然,也可以不加这个关键字,如果这样就得自己保存与恢复中断现场,考虑转载 2015-01-26 18:28:13 · 859 阅读 · 0 评论 -
arm-linux-gcc 裸机程序开发(一)
概述与SDRAM运行 以前开发arm裸机程序都是在ADS1.2开发环境下编译和调试的。刚开始时初学嵌入式好多东西不懂,选择这个开发环境的理由,一是资料多的,mini2440开发板上提供了很多例程可以参考,网上几乎所有arm裸机程序都是基于ADS1.2开发的。二是开发环境友善,虽然后来感觉ADS1.2有点难用,但毕竟是IDE的环境,对初学者来说总比命令行的方式更加直观与方便。随着学转载 2015-01-26 18:24:32 · 631 阅读 · 0 评论 -
arm-linux-gcc 裸机程序开发(二)
把u-boot的start.S移植到我的程序上,这样程序可以用supervivi的D功能下载到内存中运行了,但是还不够。因为程序在内存里,如果掉电程序就没有了,所以我们得将程序固化在flash里面。这里我们要固化在NandFlash里,这就要求程序可以能够NandFlash启动。这里我参考了mini2440的nandlfash读写程序nand.c,里面有一个函数CopyProgramFromNan转载 2015-01-26 18:26:17 · 1786 阅读 · 0 评论 -
linux-0.11综合-2
(四)mm内存管理linux的mm虽然只有两个文件memory.c和page.s,但是内容却很不简单。必须对分页机制有很好的理解才能读明白。这个版本的内核每个进程虚拟空间64M,共支持4G/64M=64的任务数。所有进程共用一个页目录,但是却有自己的页表。对虚拟地址的划分使得在页目录中也存在划分。每个进程虚拟空间最大占用16个目录项,每个目录项指向一个页表(1024个内存页),对应转载 2015-02-10 10:02:59 · 440 阅读 · 0 评论 -
linux-0.11综合-1
一.源码目录二.系统总体流程:三.各个目录的阅读总结:(一) boot(二)内核初始化init(三)kernel:(四)mm内存管理(五)文件系统模块fs:我是通过阅读赵炯老师编的厚厚的linux内核完全剖析看完LINUX0.11的代 码,不得不发自内心的说Linus真的是个天才。虽然我觉得很多OS设计的思想他是从UNIX学来的,但是他自己很周全很漂转载 2015-02-10 10:02:21 · 410 阅读 · 0 评论 -
sockaddr_in
Linux下网络编程,一般需要包含的头文件包括:#include #include #include #Include #include #include Linux下网络地址有:struct sockaddr{ unsigned int sin_family; //取值AF_INET;转载 2015-03-06 23:11:09 · 442 阅读 · 0 评论 -
webbench压力测试例子
webbench官网:http://home.tiscali.cz/cz210552/webbench.html1、Linux压力测试工具webbench适用系统:Linux2、Linux压力测试工具webbench编译安装:apt-get install gccwget http://static.chenpeng.info/uploads/2012/12/web转载 2015-03-10 19:54:21 · 423 阅读 · 0 评论 -
Linux下Gcc生成和使用静态库和动态库详解
一、基本概念1.1什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。 1.2库的种类linux下的库有两种:静态库和共享库(动态库)。转载 2015-07-20 10:53:58 · 250 阅读 · 0 评论 -
docker run hello-world
docker 安装好可以使用示例程序docker run hello-world测试docker:首先docker以系统root用户运行。在linux系统上,需要使用sudo来执行docker命令行工具,如果不这样做会导致系统权限错误。运行本条命令后,docker被激活,它会开始下载各种组件,并最终打印出“hello world”。再次运行只是打印“hello world”。在这个例子中doc原创 2017-07-30 00:04:44 · 4913 阅读 · 0 评论