自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

噗呲_DayBreak

只是内容输出

  • 博客(37)
  • 资源 (3)
  • 收藏
  • 关注

原创 tcpdump抓包命令使用

tcpdump命令使用

2022-09-22 15:43:29 220 1

原创 很简单的回调函数模型--记

基于项目工程拉出来的 “回调函数模型”。环境比较复杂,这里只贴出一部分。

2022-06-08 16:30:21 182

原创 函数指针的回调函数简单示例

回调函数: 既然是回调,就肯定会是在某一个地方。将这个回调函数赋值调用 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <unistd.h> 4 5 //定义函数指针 6 typedef int (listener_t) (int listener, int arg); 7 8 //回调 9 static int test(listener_t *enumerator,

2022-04-18 13:10:47 209

原创 keepalived基于ubuntu的源码编译和安装

源码包链接地址:(资源上传完毕会附上)新加的部分:1,instaillation.md 文件介绍了需要安装的依赖和安装的方法2,configback目录更新了一份比较常用的配置文件,修改替换掉 /etc/keepalived/keepalived.conf(virtual_ipaddress 就是虚拟IP的设置,这里需要注意一点,这个虚拟IP就是真实网卡模拟出来的虚拟IP,不过必须是要同网段的。)ps : ubuntu 下需要在 /...

2022-04-13 16:22:25 473

原创 C语言中多个文件如何使用定义在头文件(.h)的结构体

我的思路是main里定义,其它文件里赋值。1,先看 .h 文件#ifndef LIBSTR_H#define LIBSTR_H#include <string.h>typedef struct str{ char *a; char *b; } mbs;extern mbs *sc; //extern void libstr_a(void);#endifPS : 重要的是 exter mbs *sc 这个对结构体的声明2,mai

2022-04-06 13:04:43 6769 2

原创 LINUX下SVN仓库的创建及使用

1,SVN简介 1) svnversion --verison 查看是否安装svn版本 2) apt-get install subversion 安装svn 3) mkidr /var/svn 新建SVN仓库,路径随意 4) cd /var/svn svnadmin create test 在svn仓库下创建一个新的分支仓库,名字叫做 test 5) cd /var/svn/test/conf...

2022-03-15 11:19:05 3201

原创 Makefile中的filter函数

1,filter函数的作用和语法语法:$(filter SUFFIX…,$(SOURCES))作用:保留字串 " $(SOURCES)" 中所有符合模式 “ SUFFIX ” 的单词2,实例sources := main.c AT.txtfoo : $(sources) cc $(filter %.c,%.s,$(sources)) -o foo...

2022-01-11 16:39:41 7779

原创 Makefile中的eval函数和call函数到底怎么用?

1,call函数的定义是什么?语法: $(call <expression> , <parm1>, <parm2>, <parm3>,...)作用:当make执行时 expression 这个函数时,参数中的变量,如 $(1),$(2),$(3)等。会被参数<parm1>, <parm2>, <parm3>所代替。例如:reverser = $(1) $(2)foo ...

2022-01-10 17:44:29 4056 1

原创 解决ubuntu开启启动 : A start job is running for wait for nerwork to be configured 过慢

问题 :造成 ubuntu 开机启动慢的问题A start job is running for wait for nerwork to be conf igured解决办法 : 更改其超时时间(1)cd /etc/systemd/system/network-online.target.wants/(2)vim systemd-networkd-wait-online.service(3)在 【service】中添加 TimeoutSta...

2022-01-10 10:35:56 3299 1

原创 ubunut 16.04 换源 & apt-get update 失败的一种问题

1,换源文件 /etc/apt/sources.list deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiv erse deb http://mirrors.aliyun.com/ubuntu/ xenial-security...

2021-12-03 22:22:44 625

原创 论如何将测试的驱动添加到内核中变成家养

主要修改的点: (1)对应文件夹下的 Konfig 的更改 (2)对应 Make file 文件的更改 (3)make menuconfig 添加操作步骤: (1)将写好的驱动源文件放入内核源码中正确的目录下 (2)在 Makefile中添加相应的依赖 (3)在Kconfig 中添加相应的配置项...

2021-11-14 15:27:51 375

原创 开发板出现 :明明有可执行文件,确执行不了 xxx no found

问题 :应用程序在开发板上执行失败 -/bin/sh: ./app: not found判断 :(1)应用程序是使用gcc交叉编译链编译的 (2)上述应该是 某些库文件没有查找到解决:两种方法,一种是 静态编译;一种是动态库的copy (1)静态编译:arm-linux-gcc xxx.c -o xxx -static 优点 :方便 缺点 :编译生成的文件过大...

2021-11-09 16:00:39 2417

原创 如何设置当前用户ubuntu的环境变量

1,vim ~/.bashrc2,末尾添加 export PATH=xxx (在原有的环境变量基础上,再进行自己的添加)3,source ~/.bashrc 立即生效,或者重启生效

2021-11-09 15:49:50 229

原创 简单的驱动编写:函数,流程,通信

1,编写一个空客驱动,所需函数(1)模块安装函数 __init 和卸载函数 __exit : #include <linux/init.h>(2)如何调用上述的注册 : module_init 和 module_exit (3)register_chrdev(函数参数参考内核源码);向内核使用 file_operations 结构体注册自己的驱动 成功返回0,失败返回其它 ...

2021-11-09 14:03:05 400

原创 busybox制作简单的根文件

1,准备(1)官网自行下载busybox (2)Ubuntu 16.04 (3)gcc 交叉编译链2,更改主Makefile (1)ARCH = arm (2)CROSS_COMPILE = 你存放gcc交叉编译链的工具3,配置 menuconfig (1)更改如下,我的版本是 busybox 1.24.0Busybox Settings---> Build Options--...

2021-11-06 19:02:57 78

原创 记录:nfs在开发板上挂载根文件失败问题及环境搭建

1,nfs在开发板上挂载根文件失败问题 现象: 找到以上信息。 (1)Looking up port of RPC 100003/2 on 192.168.1.103 阻塞在验证上 (2)Root-NFS: Server returned error -101 while mounting /home/gj/nfs/rootfs/rootfs (3)rpcbind: ser...

2021-11-06 18:51:08 987

原创 C语言--wait回收实例及waitpid函数

1,fork后wait回收实例 WIFEXITED、WIFSIGNALED、WEXITSTATUS这几个宏用来获取子进程的退出状态。 WIFEXITED宏用来判断子进程是否正常终止(return、exit、_exit退出) WIFSIGNALED宏用来判断子进程是否非正常终止(被信号所终止) WEXITSTATUS宏用来得到正常终止情况下的进程返回值的。伪代码:pid_t ret = -1;int s...

2021-11-04 13:45:07 652

原创 C语言--目录读取文件,opendir函数和readdir函数

1,opendir 和 readdir函数 DIR *opendir(const char *name); 返回值:The opendir() and fdopendir() functions return a pointer to the directory stream. 解释:成功返回指向目录流的指针(DIR),失败 返回NULL并设置errno st...

2021-11-04 13:20:48 5625

原创 C语言--文件权限管理,access函数和chmod函数

1,ls -l 打印出的权限列表(1)一共9位,3个一组。 第一组:文件的属主 (这个文件是谁创建的,user)对该文件的可读、可写、可执行权限。 第二组:文件属组所在的组 (group)对该文件的权限。 第三组:其他用户(others)对该文件的权限。PS:文件创建之后还可以用chown命令去修改一个文件的属主,还可以用chgrp命令去修改一个文件所在的组。 2,程序对文件操作的权限检...

2021-11-04 13:01:34 1945

原创 C语言--常用的文件属性获取API,stat、fstat、lstat

1,常见的7种文件 (1)- 文本文件 : 文件中的内容由文本构成 (2)- 二进制文件 :存的数字不是文字编码数字,而是真正的数字 (3)d 目录文件 (4)c 字符设备文件 和 b块设备文件 :设备文件,并不是真实存在硬盘上的一个文件,而是文件系统虚拟制造出来的 (5)p 管道文件 (6)s 套接字文件 : 用来上网的 (7)l 符号链接文件2,常用的文件属性获取API,stat、fs...

2021-11-04 12:28:40 631

原创 C语言--dup、dup2函数和fcntl函数

1,dup 和 dup2 : 成功返回新的文件描述符,失败返回 -1 可以设置errnoint dup(int oldfd);int dup2(int oldfd, int newfd);区别:dup2和dup的作用是一样的,都是复制一个新的文件描述符。但是dup2允许用户指定新的文件描述符的数字。dup : fd2 = dup2(fd1); 复制fd1文件描述符dup2 : fd2...

2021-11-04 09:56:15 763

原创 C语言--读写的文件IO,open、write、read、lseek

Michael Kerrisk - man7.org : 网络版man手册(英文) -- > Linux man pages online1,open函数 : 成功返回文件描述符,失败返回 -1 int open(const char *pathname, int flags);const char *pathname :输入型参数,打开文件的名字 flags: The argume...

2021-11-04 09:34:39 785

原创 C语言——linux下简单编写“守护进程”

1,守护进程的宽泛概念和特点 (1)demon 表示的就是守护进程,简称为d。(不重要,一般都是命名时,加个以d结尾) (2)长期运行。(开机,到关机之前) (3)与控制台脱离。(ps -ajx || ps -aux 显示出的TTY 为 ‘?’,基本就是守护进程)2,编写守护进程所需要到的函数和流程(详细查阅man手册) (1)fork :pid_t fork(void); 创建父子进程。 (2)setsid :p...

2021-11-03 16:32:21 551

原创 linux中如何在命令行查找想要的函数等在哪个目录下

grep "R_ARM_RELATIVE" -nR *解释:在所有文件里搜索这个关键词,并显示这一行

2021-10-31 01:54:58 239

原创 menuconfig、Kconfig、makefile、./config之间的关系

1,流程说明 (1)内核在编译之前,需要进行配置;而配置项则是类似于“make xxx_config”在 kernel文件下arch/arm/configs/xxx_config。 (2)上述为粗略配置,当前目录下会生成 .config(重要文件) (3)执行make menuconfig 进行精细配置 (4)编译运行2,menuconfig读取Kconfig文件 (1)menuconfig显示菜单内容,一方...

2021-10-31 01:49:45 470

原创 C语言指针中的->和.

1,指针变量访问结构体,使用 ->2,普通变量访问结构体变量用 .代码: 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 struct func{ 5 6 int num; 7 int num...

2021-10-28 22:36:28 911

原创 20211028-uboot启动分析流程图

1,uboot版本2,uboot第一阶段和第二阶段流程图3,部分解析文档 文档资源正在审核,完成之后添加。仅供参考

2021-10-28 00:29:17 136

原创 20211025-BCD码和十进制之间的相互转换

1,函数功能:十进制数转换为BCD码 思路:(1)将十进制数 24拆分成 2 和 4 (2)将2 和 4 组合成0x24 代码:static unsigend int num_1_bcd(unsigned int num){ return (((num / 10) << 4) | (num % 10));}解析: (1)((num / 10) << 4...

2021-10-25 16:08:38 1128

原创 20211022:一个文件夹中的.c文件如何调用另一个文件下的.h头文件

1,问题描述 编写简单头文件INCDIR := $(shell pwd)

2021-10-22 23:19:38 1688

原创 ubuntu命令行安装gcc交叉编译链

1,安装和卸载 gcc交叉编译#sudo apt-get install gcc-arm-linux-gnueabihf#sudo apt-get remove gcc-arm-linux-gnueabihf2,安装和卸载 g++交叉编译#sudo apt-get install g++-arm-linux-gnueabihf#sudo apt-get remove g++-arm-linux-gnueabihf...

2021-07-08 15:37:16 473

原创 ubuntu64位操作系统如何向下兼容32位gcc交叉编译链

1,现象-bash: ./arm-none-linux-xxx-gcc: No such file or directory2,解决方法 执行如下命令,安装x64兼容x86的运行库及环境# sudo apt-get install lib32ncurses5# sudo apt-get install lib32z13,问题解决 再次执行版本校验 ,出现 : gcc version 4.4.1 则成功...

2021-07-08 15:21:43 520

原创 2021-06-21堆&栈&共用体&offsetof & container_of &结构体对齐 & 大小端模式 --5

1,程序需要内存来支持 (1)内存是程序的立足之地(程序是放在内存中运行的) (2)程序运行时需要内存来存储一些临时变量2,内存管理是由操作系统完成的 (1)内存本身在物理上是一个硬件器件,由硬件系统提供 (2)程序根据自己的实际情况来选择方式获取内存(在操作系统登记这块内存的临时使用权限)、使用和释放内存(向操作系统归还这块内存的使用权限)3,内存的来源??? 能够获取的内存就是三种情况 : 栈(stack) 、堆(heap) 、 数据区(.dat...

2021-06-21 07:21:41 169

原创 C语言实现对strncpy等各种函数的实现(分层) -- 不定时更新 -- 20210519

实现strncpy函数 设计: 分层实现;str.h 是自定义头文件,strncpy.c是 strncpy 函数功能的具体实现,main.c 主函数 编写 strncpy.c, 思路 : (1) get_str2 为要复制字串,最好不要改变。 (2)这里直接使用 strlen(get_str2);函数来计算字串长度,不自定义函数编写...

2021-05-19 12:08:32 131

原创 Linux--Vmare-不定时更新-20210518

Centos7 换源 1,确保Centos可以链接互联网 2,安装wget; # yum install wget -y 3,下载Centos7的repo文件(这里直接替换aliyun) #wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 4,更新镜像源 #yum clean all 清除缓存...

2021-05-18 16:34:48 76

原创 C语言读配置文件-自动封装Windows系统服务--20210512

描述:基于Linux平台C语言编写的 读配置文件(.txt .init),交叉编译为 .exe程序;并在Windows下自动将程序注册为系统服务的模型。环境准备: (1)Ubuntu虚拟机 (2)基于Linux平台与Windows交叉编译链 (3)instsrv+srvany 注册程序服务1,命令行安装 || 使用交叉编译链 $ sudo apt-get install mingw-w64...

2021-05-12 22:10:23 275

原创 C语言位操作-20210511-3

1,位与 &、位或 | 、位异或 ^、位取反 ~ 简单总结一下知识点。 其真值表特点 位与:全1出1,有0出0 位或:有1出1,全0出0 位异或: 同出0,异出1 位取反 : 按位取反2,左移 << 右移 >>...

2021-05-11 23:09:08 340

原创 vim使用技巧-20210511-1

1,Ubuntu如何安装vim? sudo get-apt install vim2,Centos如何安装vim? yum -y install vim* (Centos下vim会安装3个包)3,如何快捷配置vim编辑界面? (1)home家目录,# vim ./.vimrc;没有创建 (2)也可以直接添加在 /etc/vim/vimrc (ubuntu和Centos路径不一样,etc下找vimrc) (3) set nu // 行号...

2021-05-11 13:50:04 90

keepalived 集群高可用 源码包

概要:基于ubuntu编译安装keepalived 简介:keepalived里添加了新的 配置文件版本,添加了 installation文档,添加了 keepalived.service keepalived.service 是基于ubuntu中systemctl命令来编写的一个启动服务,详细内容你应该查看keepalived-server文件夹下的 README.md

2022-04-13

2,uboot第二阶段.txt

2,uboot第二阶段.txt

2021-10-28

1,uboot第一阶段.txt

1,uboot第一阶段.txt

2021-10-28

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除