linux
冰夫子
活到老学到老
展开
-
linux根文件系统启动流程
转载 2019-11-11 17:08:23 · 3020 阅读 · 1 评论 -
嵌入式文件系统详解
在嵌入式领域,FLASH是一种常用的存储设备,Flash闪存作为嵌入式系统的主要存储设备有其自身的特性。Fash的写入操作只能把对应位置的1修改成0,而不能把0修改为1,而擦除Fash就是把对应存储块的内容恢复为1。因此,一般情况下,向Fash写入内容时,需要先擦除对应的存储区间,这种擦除是以块(Bock)为单位进行的。闪存主要有NOR和NAND两种技术。因为Flash存储器的擦写次数是有限的,N...转载 2019-10-30 16:34:38 · 897 阅读 · 0 评论 -
__attribute__ ((packed)) 和 __attribute__ ((aligned(4)))的用法
1、attribute((packed))的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。2、attribute((aligned(n)))的作用就是告诉编译器在编译过程中按照n字节对齐。常常用来在结构体后面进行修饰。#include <stdio.h>/*编译器默认是4字节对齐*/struct test{ ...转载 2019-10-29 11:47:48 · 905 阅读 · 0 评论 -
/proc/meminfo详解
MemTotal: 29584 kB //物理内存MemFree: 968 kB //剩余物理内存Buffers: 28 kB //用来给文件做缓冲的大小Cached: 4644 kB 被高速缓冲存储器(cache memory)用的内存的大小(等于 diskcache minus ...原创 2019-10-24 14:35:46 · 2516 阅读 · 0 评论 -
封装函数log按级别输出
设置打印界别DEBUG>INFO>WARNING>ERROR,通过设定DEBUG_LEVEL来确定需要哪类打印,方便调试#ifndef _TYPEDEF_H_#define _TYPEDEF_H_#include <stdio.h>#define DEBUG_OUTPUT 3#define INFO_OUTPUT 2#define ...原创 2019-10-24 13:37:08 · 210 阅读 · 0 评论 -
_exit(0) exit(0) exit(1) return区别
1、_exit();和exit()主要区别是一个退出进程会清理I/O缓冲区,一个直接结束进程进入到内核中。下面我就举个例子说明下吧,int main(){printf("is ok\n");printf("I am a chinese people");_exit(0);}这个程序输出的结果是:is okint main(){printf("is ok\n");p...转载 2019-04-25 19:51:13 · 1846 阅读 · 0 评论 -
linux文件系统类型
Linux 支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。 Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系...转载 2019-04-23 08:35:36 · 906 阅读 · 0 评论 -
使用setitimer实现多个定时器功能,定时器回调函数,定时器取消
在一些程序中,我们需要每隔一段时间执行一个函数。例如每2s,5s,10s分别执行不同的函数。如果有多个定时器,实现这个功能就很简单,只需分别定时2s,5s,10s即可。但是Linux中只允许一个进程中有一个定时器,怎么办呢?可以用以下的方法实现。首先使用setitimer函数注册一个1s定时器one_timer,因为1s可以作为被2s,5s,10s整除的单位时间。Setitimer定时时间到达以...转载 2019-05-15 14:12:56 · 2111 阅读 · 0 评论 -
linux环境变量文件区别
属性区别(转载http://www.cnblogs.com/fuxueming/p/6603119.html)1./ etc / bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。也就是说,当用户shell执行了bash时,运 行这个文件。2.〜/ .bashrc该文件存储的是专属于个人bash shell的信息,...转载 2019-06-05 11:02:19 · 205 阅读 · 0 评论 -
嵌入式开发产品流程
嵌入式产品,与普通电子产品一样,开发过程都需要遵循一些基本的流程,都是一个从需求分析到总体设计,详细设计到最后产品完成的过程。但是,与普通电子产品相比,嵌入式产品的开发流程又有其特殊之处。它包含嵌入式软件和嵌入式硬件两大部分,针对嵌入式硬件和软件的开发,在普通的电子产品开发过程中,是不需要涉及的。嵌入式产品的研发流程具体如下图:下面,针对嵌入式产品的开发过程中的各个阶段,我们...转载 2019-06-16 12:20:02 · 262 阅读 · 0 评论 -
github添加ssh key
此经验分两部分:第一部分介绍:在windows下通过msysGit(Git for windows、Git Bash)配置SSH Keys连接GitHub。第二部分介绍:在GitHub上创建仓库,在本地创建项目,然后将本地项目通过SSH提交到GitHub仓库中。工具/原料 GitHub msysGit(git for windows、Git Bash) msysGi...转载 2019-09-18 11:07:53 · 301 阅读 · 0 评论 -
bootstrap简介
bootstrap是最初級的引導,旨在初始化CPU,簡單時鐘,堆椎,目標是讓CPU處於可以正常運行\r咱通常說的uboot那樣的bootloader實際上是集成了很多功能及驅動的程式,如串口,網絡等,目的是為加載和調試kernel創建一個良好環境基于ARM的嵌入式系统的启动都需要引导程序,引导过程可以有两种,一种是先运行小型的bootstrap完成所谓的lowlev...转载 2019-03-29 17:53:33 · 894 阅读 · 0 评论 -
ubuntu串口调试工具kermit和minicom
串口终端工具①sudo apt-get install ckermit②配置文件.kermrc #这是一个隐藏文件,放在主文件夹根目录下 set line /dev/ttyUSB0 #根据实际情况去设置有可能是/dev/ttyUSB1,用dmesg命令,通过打印信息查看串口的设备文件(端口号ttyUSB0或ttyUSB1)set speed 115200set carr原创 2017-12-25 21:57:38 · 553 阅读 · 0 评论 -
如何建立虚拟机中的Linux和windows的共享文件夹
如何建立虚拟机中的Linux和windows的共享文件夹1234567分步阅读在虚拟机中装有Linux系统,主机是windows,如何实现文件共享呢?工具/原料操作系统:windows环境:VMware虚拟机转载 2018-02-26 09:29:18 · 3083 阅读 · 0 评论 -
linux-单元测试--Cunit使用
1.CUNIT 介绍CUnit是一种C语言单元测试框架 ,继Junit CppUnit的成功后, c语言环境下也出现了开发源码的白盒测试用例CUnit。CUnit以静态库的形式提供给用户使用,用户编写程序的时候直接链接此静态库就可以了。它提供了一个简单的单元测试框架,并且为常用的数据类型提供了丰富的断言语句支持。2.CUNIT的下载和安装(linux)2.1、首先在站点1:http://www.h...转载 2018-04-04 11:08:08 · 1015 阅读 · 0 评论 -
man 中文显示
首先安装man工具的内容:1. sudo apt-get install manpages-posix manpages-posix-dev2. sudo apt-get install manpages-zh3. 配置中文:sudo gedit /etc/manpath.config& 把其中的/usr/share/man全部修改成/usr/share/man/zh_CN转载 2018-04-25 17:12:02 · 787 阅读 · 0 评论 -
makefile下$^,$@,$?,$&lt;,$(@D),$(@F)定义使用详解
每次看makefile的时候,总会遇到一些变量记不住,就需要去查找资料,今天有时间,就顺便把几个常用的变量学习了下,顺便总结了下记忆方法,感觉记住它们并不难,特把方法分享给大家。变量定义:$^所有的依赖目标的集合。以空格分隔。如果在依赖目标中有多个重复的,那个这个变量会去除重复的依赖目标,只保留一份。 $@表示规则中的目标文件集。在模式规则中,如果有多个目标,那么,"$@"就是匹配于目标中...转载 2018-02-02 11:44:52 · 20343 阅读 · 0 评论 -
vmware设置共享目录
前提(其他版本类似)----虚拟机版本:9.0.0 build-812388 虚拟机系统: UBUNTU 12.04 LTS windows:win101、虚拟机文件夹--右键点击文件夹--->左击Properties--->左击Share--->点击Share this folder ...原创 2017-10-25 16:18:55 · 493 阅读 · 0 评论 -
GDB调试
一、GDB 概述GDB 是 GNU 开源组织发布的一个强大的 UNIX 下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像 VC 、 BCB 等 IDE 的调试,但如果你是在 UNIX 平台下做软件,你会发现 GDB 这个调试工具有比 VC 、 BCB 的图形化调试器更强大的功能。所谓 “ 寸有所长,尺有所短 ” 就是这个道理。一般来说, GDB 主要帮忙你完成下面四个方面的功能: ...转载 2018-04-04 10:08:50 · 211 阅读 · 0 评论 -
msgbuf实现mtext[1]可变长代码
#include <stdio.h>#include <stdlib.h>#include <string.h>//定义类型typedef struct msgbuf{ int msize; char mtext[1];}msgbuf_t;int main(void){ char string[]="hello"; ...原创 2017-10-21 14:13:59 · 1349 阅读 · 1 评论 -
动态库与静态库的区别
动态库与静态库优缺点比较(2012-10-18 15:31) 我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期的代码维护。我们可以把他们制作成相应的功能函数,使用时直接调用就会很方便,还可以进行后期的功能升级。 例如我要在一段代码转载 2017-10-17 13:51:32 · 223 阅读 · 0 评论 -
tcpdump安装
1.网上下载获得libpcap和tcpdump http://www.tcpdump.org/ 2.安装c编译所需包:apt-get install build-essential 3.安装 libpcap的前置:apt-get install flex,apt-get install bison 4.安装libpcap。 tcpdump的使用必须有这库。 ...转载 2018-09-20 10:51:35 · 3440 阅读 · 0 评论 -
ssh 安装使用
ubuntu14.04 ssh的安装及使用方法ssh--secure shell,提供安全的远程登录。从事嵌入式开发搭建linux开发环境中,ssh的服务的安装是其中必不可少的一步。方法/步骤 使用apt命令安装openssh server $ sudo apt-get install openssh-server 安装完成后查看服务是否启动 /etc/init.d...转载 2018-11-26 11:06:42 · 150 阅读 · 0 评论 -
linux下TFTP服务器搭建
ubuntu系统①安装服务sudo apt-get install tftpd-hpa #tftp网络服务器,用于文件的下载传输②配置服务sudo vim etc/defaults/tftpd-hpa将TFTP_DIRECTORY=/var/lib/tftpboot修改为:TFTP_DIRECTORY=/tftpboot保存退出#原创 2017-12-25 21:24:23 · 313 阅读 · 0 评论