Linux
feilongzaitianhehe
软件开发者,涉猎范围包括但不限于C#、C、C++,系统包括Linux、freeRTOS、windows等;
联系邮箱:956806322@qq.com 或者 微信:flshihuai 无重要事项不要联系,谢谢各位
展开
-
Linux程序设计—多进程编程
进程是程序处于一个执行环境中在一个数据集上的一次运行过程,它是系统进行资源分配和调度的一个独立单位。每个进程都有自己独立的系统资源,一个进程中可以有多个线程,系统是系统资源分配的基本单位。整个Linux操作系统都是由父子进程结构组成,每个进程都有创建者,也就是父进程,但是有一个进程例外,也就是init进程,其为系统启动初始化后执行的第一个进程。版权声明:本文为CSDN博主「青渡QAQ」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。查看如上链接原文,写的很不错。转载 2023-01-06 15:37:15 · 173 阅读 · 0 评论 -
函数sync、fsync与fdatasync的总结整理(必看篇)
一、术语解释脏页:linux内核中的概念,因为硬盘的读写速度远赶不上内存的速度,系统就把读写比较频繁的数据事先放到内存中,以提高读写速度,这就叫高速缓存,linux是以页作为高速缓存的单位,当进程修改了高速缓存里的数据时,该页就被内核标记为脏页,内核将会在合适的时间把脏页的数据写到磁盘中去,以保持高速缓存中的数据和磁盘中的数据是一致的。内存映射:内存映射文件,是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。内存映射文件与虚转载 2020-08-04 22:12:24 · 293 阅读 · 0 评论 -
对find,xargs,grep和管道的一些深入理解
问题相信大家都知道在目录中搜索含有固定字符串文件的命令: 1 find . -name '*.py' |xargs grep test 刚开始的时候,我不熟悉xargs命令,所以直接使用的命令是 1 find . -name '*.py' |grep test 结果并不是自己所期望的。此命令只是找出文件名*.txt有test的情况。这里我就研究一下,究竟xargs做了什么,使得结果不相同。参数转载 2020-06-27 14:29:50 · 231 阅读 · 0 评论 -
UBOOT-2012-10在OK6410平台的移植从SD卡启动
首先必须弄清楚S3C6410关于SD启动的整个过程。再来谈移植:1.把movi.h文件放在include目录下。2.把movi_boot.c放在/nand_spl目录下并创建链接,把链接放到/nand_spl/board/samsung/smdk6410目录下并修改该目录下的Makefile 2.1 增加movi_boot.o COBJS = n转载 2015-01-20 14:05:28 · 554 阅读 · 0 评论 -
OK6410 uboot2013.04-rc1 DM9000移植及tftp配置使用
uboot2013.04-rc1 DM9000移植及tftp配置。原创 2015-01-18 09:10:21 · 1123 阅读 · 0 评论 -
Ubuntu“无法解析或打开软件包的列表或是状态文件”的解决办法。
早上起来习惯性地打开更新管理器看看,结果出现“无法解析或打开软件包的列表或是状态文件”的错误,具体信息是:初始化包信息时遇到无法解决的问题。请汇报这个“update-manager”软件包的错误,并且将如下信息包含在报告中:'E:Encountered a section with no Package: header, E:Problem with Merge转载 2015-01-18 17:09:17 · 420 阅读 · 0 评论 -
U-BOOT源码分析及移植 这篇文章写的不错
U-BOOT源码分析及移植本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上:1、u-boot工程的总体结构2、u-boot的流程、主要的数据结构、内存分配。3、u-boot的重要细节,主要分析流程中各函数的功能。4、基于FS2410板子的u-boot移植。实现了NOR Flash和NAND Flash启动,网络功能。 这些认识源于自己移植u-boot过程中查找的资料和转载 2015-01-19 15:37:37 · 440 阅读 · 0 评论 -
Linux下autoconf和automake使用
转自:http://hi.baidu.com/liuyanqiong/blog/item/0a6f0ad9d28e1d3d32fa1c7b.html 作为Linux下的程序开发人员,一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将转载 2015-02-03 21:02:24 · 351 阅读 · 0 评论 -
OK6410(256M RAM ,2G SLC NAND)Uboot-2013-04移植
u-boot2013.04 ok6410移植 先从SD卡启动加载uboot到Nandflash,然后断电选择Nandflash启动模式,从Nandflash启动。原创 2015-01-17 16:15:26 · 1889 阅读 · 0 评论 -
使s3c-u-boot-1.1.6支持S3C6410的SD启动
这里使用的uboot并非uboot官方发布的uboot代码,而是为三星定制的一个uboot版本s3c-u-boot-1.1.6,其代码作者就包括了三星的程序员与denx的员工。这个版本支持SD启动,不过默认是nand启动,使它支持uboot需要做以下事情: 1、 虽然支持uboot启动,但是uboot代码里不叫SD启动方式,而是叫movinand启动方式,在incluede/confi转载 2015-01-20 13:09:26 · 612 阅读 · 0 评论 -
安装Linux/x11版Qt-4.8.4
在官方网站下载Qt libraries 4.8.4 for Linux/X11 (225 MB)(实际是:qt-everywhere-opensource-src-4.8.4.tar.gz)。完成之后在ubuntu宿主机解压:zhuzhaoqi@zhuzhaoqi-desktop:~/Qt-4.8.4/Qt-4.8.4$ tarzxvf qt-everywhere-opensour转载 2015-02-07 19:28:49 · 1361 阅读 · 0 评论 -
Linux3.6.7在OK6410平台的移植TS
触摸屏驱动也是参考这篇文章:http://www.cnblogs.com/zuobaozhu/archive/2012/05/13/2498092.html#_Toc324535492 所以以下#####################内的文字纯属复制这位网友的,当然编译时有些小错误,不过都是很容易解决的,本人打字慢,就不提了。 ##################################转载 2015-02-07 08:38:43 · 605 阅读 · 0 评论 -
ok6410 linux3.8.3 tslib1.0安装移植
原文链接:http://bbs.elecfans.com/forum.php?mod=viewthread&tid=357014&authorid=222350&page=3#comment_top在进行Qt开发之前,建立Qt编译环境、移植Qt是一个至关重要的步骤。1.1.1 tslib安装OK6410开发平台在使用触摸屏时,因为电磁噪声的缘故,触摸屏容易存在点击不准确、有转载 2015-02-09 20:41:41 · 579 阅读 · 0 评论 -
Linux makefile 教程 非常详细,且易懂
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比转载 2015-01-22 22:45:56 · 319 阅读 · 0 评论 -
gdbserver远程调试
远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通过串口或TCP连接。使用GDB标准远程串行协议协同工作,实现对目标机上的系统内核和 上 层应用的监控和调试功能。调试stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程序间的一个媒介而存在。 就目前而言,嵌入式 Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:用ROM Monitor调试目转载 2015-02-12 16:13:59 · 892 阅读 · 0 评论 -
linux 更换 软件源后 GPG错误
linux 更换 软件源后 GPG错误linux软件源 GPG 签名 密钥linux 更换 软件源后 GPG错误 http://my.oschina.net/emptytimespace/blog/83633如文章【1】中提到: 1,对于DEBIAN系: 如果您的套件支援APT-KEY金鑰管理(例如Ubuntu 6.06或者之後的版)转载 2015-11-21 14:34:39 · 7303 阅读 · 0 评论 -
automake - 使用 autotools 工具集
automake - 使用 autotools 工具集地址:https://www.cnblogs.com/gaowengang/p/6170098.html转载地址,写的不错GNU构建系统和AutoTools地址:https://www.cnblogs.com/liwanliangblog/p/9289247.html《Linux c 开发-Autotools使用...转载 2019-05-02 23:43:37 · 157 阅读 · 0 评论 -
automake - 使用 autotools 工具集
一般而言,对于小项目或玩具程序,手动编写 Makefile 即可。但对于大型项目,手动编写维护 Makefile 成为一件费时费力的无聊工作。本文介绍 autotools 工具集自动生成符合 Linux 规范的 Makefile 文件。如果读者没有安装 autotools 工具集,安装命令如下,可通过which命令查看是否安装$ sudo apt-get install automak...转载 2019-05-02 23:56:55 · 256 阅读 · 0 评论 -
linux驱动头文件说明
驱动程序: #include 是在linux-2.6.29/include/linux下面寻找源文件。#include 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。#include 在linux-2.转载 2015-02-01 21:25:17 · 449 阅读 · 0 评论 -
Linux3.8.3在OK6410平台的移植LCD驱动
本次移植大部分内容参考网上这篇文章:http://www.cnblogs.com/zuobaozhu/archive/2012/05/13/2498092.html#_Toc3245354921.mach-ok6410.c关于LCD的部分程序:static struct s3c_fb_pd_win ok6410_lcd_type0_fb_win = {.max_bpp = 32转载 2015-01-30 16:07:24 · 1518 阅读 · 0 评论 -
Unix编程之size_t、ssize_t
对于赶时间的朋友,只看第一段就好了。 首先,我非常肯定以及确定的告诉你ssize_t是有符号整型,在32位机器上等同与int,在64位机器上等同与long int,有没有注意到,它和long数据类型有啥区别?其实就是一样的。size_t 就是无符号型的ssize_t,也就是unsigned long/ unsigned int (在32位下),不同的编译器或系统可能会有区别,主要是因为转载 2015-02-01 11:35:26 · 376 阅读 · 0 评论 -
U-boot 分析2
前面已经准备好了sp指针,而且pc也指向了start_armboot,下面就该运行这个c函数了。start_armboot()在lib_arm/board.c中,我想一行一行的分析,练习基本功。void start_armboot (void)首先分析参数和返回值(由于不是计算机专业毕业的,只能做些基础的分析),这个函数的返回值和参数都是空,它对系统的影响只能体现在对全局量转载 2014-09-10 16:04:33 · 466 阅读 · 0 评论 -
U-boot 分析3
上面算是把初始化的第一个阶段完成,下面还需要接着初始化void start_armboot (void) 298 299 mem_malloc_init (_armboot_start - CONFIG_SYS_MALLOC_LEN,300 CONFIG_SYS_MALLOC_LEN);CONF转载 2014-09-10 16:06:23 · 434 阅读 · 0 评论 -
U-boot 分析4
274 void main_loop (void) 275 { 276 #ifndef CONFIG_SYS_HUSH_PARSER 277 static char lastcommand[CONFIG_SYS_CBSIZE] = { 0, }; 278 int len; 279 int rc = 1转载 2014-09-10 16:07:30 · 620 阅读 · 0 评论 -
U-boot 分析5
接下来就进入命令行了,u-boot有好多命令,它们的运行又牵扯到一堆东西。挑几个觉得会用到的命令看看1. bootm 987 U_BOOT_CMD( 988 bootm, CONFIG_SYS_MAXARGS, 1, do_bootm, 989 "boot application image from mem转载 2014-09-10 16:06:41 · 492 阅读 · 0 评论 -
LDS文件格式分析
最近在看Linux内核时,总是遇到一些和连接脚本相关的东东,搞得人一头雾水,终于下定决心把它搞明白,写下一点心得,希望对和我一样的人有所帮助! 连接脚本的格式====================连接脚本是文本文件.你写了一系列的命令作为一个连接脚本. 每一个命令是一个带有参数的关键字,或者是一个对符号的赋值. 你可以用分号分隔命令. 空格一般被忽略转载 2014-09-10 16:10:27 · 485 阅读 · 0 评论 -
U-boot 2011.09 启动内核分析
U-Boot启动内核分析启动内核分析启动内核分析启动内核分析 先来引用一下这篇介绍“ARM Linux内核启动要求”的文章ARM Linux Kernel Boot Requirements,是ARM Linux内核的维护者Russell King写的。 CPU register settings o r0 =转载 2014-09-12 15:20:29 · 446 阅读 · 0 评论 -
AM335X u-boot移植
uBOOT的编译命令直接一次性编译make O=am335x CROSS_COMPILE=arm-arago-linux-gnueabi ARCH=arm am335x_evm配置make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- am335x_evm_config编译make ARCH=转载 2014-09-12 15:35:00 · 1865 阅读 · 0 评论 -
UBI文件系统
UBI文件系统作者:刘洪涛,华清远见嵌入式学院金牌讲师。在linux-2.6.27以前,谈到Flash文件系统,大家很多时候多会想到cramfs、jffs2、yaffs2等文件系统。它们也都是基于文件系统+mtd+flash设备的架构。linux-2.6.27后,内核加入了一种新型的flash文件系统UBI(Unsorted Block Images)。这里简单介绍下UBI文件系统转载 2014-11-18 22:47:56 · 733 阅读 · 0 评论 -
交叉编译器arm-linux-gcc
(一)交叉编译器简介 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,这个编译过程就叫交叉编译.简单地说,就是在一个平台上生成另一个平台上的可执行代码.(二)体系结构与操作系统(1)常见的体系结构有ARM结构、x86结构等.(2)常见的操作系统有linux,windows等.(3)同一个体系结构可以运行不同操作系统,如x86上可以运行L转载 2014-11-17 22:29:35 · 376 阅读 · 0 评论 -
autoconf 简介
Autoconf的内容Autoconf 能生成用于自动配置源代码的 shell 脚本。安装下列程序: autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate 和 ifnames简短说明autoconf是一个产生可以自动配置源代码包,生成shell脚本的工具,以适应各种类UNIX系统的需转载 2014-11-19 22:07:10 · 616 阅读 · 0 评论 -
Linux下Makefile的automake生成全攻略
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序转载 2014-11-20 21:51:02 · 264 阅读 · 0 评论 -
linux/init.h 内核常用头文件
在init.h头文件中包含了模块的初始化的宏定义 以及一些其他函数的初始化函数#define module_init(x)__initcall(x);#define module_exit(x)__exitcall(x);内核模块的初始化和注销函数就在这个文件中,还是把源代码贴上来看着方便些#ifndef _LINUX_I转载 2015-01-08 13:23:03 · 4799 阅读 · 0 评论 -
Linux/module.h 常用头文件
/**写内核驱动的时候 必须加载这个头文件,作用是动态的将模块加载到内核中去*常用的宏定义如 MODULE_LICESENCE(),MODULE_AUTHOR(),等在此文件中*而且 kobject,kset结构体题及其操作函数也在这个结构体中,,,其实学习头文件最好的方法就是仔细的看头文件--看看有哪些功能就好用的时候再查阅***/#ifn转载 2015-01-08 13:36:07 · 3174 阅读 · 0 评论 -
printk 函数
printk相当于printf的孪生姐妹,她们一个运行在用户态,另一个则在内核态被人们所熟知。1printk概述编辑对于做嵌入式或者熟悉linux内核的人来说,对printk这个函数一定不会感到陌生。printk是在内核中运行的向控制台输出显示的函数,Linux内核首先在内核空间分配一个静态缓冲区,作为显示用的空间,然后调用sprintf,格式化显示转载 2015-01-08 13:52:32 · 528 阅读 · 0 评论 -
Makefile 小知识点总结
obj-m 意思是将后面跟的东东编译成内核模块。obj-y 编译进内核obj-n 不编译原创 2015-01-08 13:56:08 · 370 阅读 · 0 评论 -
嵌入式: jffs2,yaffs2,logfs,ubifs文件系统性能分析
在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2,yaffs2,logfs,ubifs。那么对于这几个文件系统,如何选择一个针对自己的硬件最合适的呢?他们各自的特点是什么?性能优劣如何? 下面一个PDF为我找到的一篇专门针对这几个文件系统做的转载 2015-01-29 11:24:38 · 711 阅读 · 0 评论 -
linux下 open() write() read() close函数
1. open()函数功能描述:用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。所需头文件:#include ,#include ,#include 函数原型:int open(const char *pathname,int flags,int perms)参数:pathname:被打开的文件名(可包括路径名如"dev/tt转载 2015-02-01 13:54:31 · 363 阅读 · 0 评论 -
U-boot 分析1
1. u-boot是一款功能十分强大的bootloader,分析其代码,获悉bootloader的基本写法。 2. 以sbc2410这块开发板为例分析,u-boot版本为2010.03。 3. cpu相关部分3.1 cpu在硬件上就是一个门阵列,是一个完全的逻辑器件,它提供了指令集,对cpu的控制就是靠对cpu发送相关指令实现的。这些指令是一连串的二进制码,转载 2014-09-10 15:59:28 · 417 阅读 · 0 评论