自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (2)
  • 收藏
  • 关注

原创 Linux内核编程小妙招

【代码】Linux内核编程小妙招。

2023-03-16 15:20:18 245

原创 DTS设备树规则

DTS基本语法

2022-07-22 17:11:30 1305

原创 Linux之pinctrl子系统与gpio

Linux之pinctrl子系统与GPIO

2022-07-19 17:57:55 756

原创 Linux的uart驱动小结

Linux的uart简单驱动见解

2022-07-15 15:09:21 318

原创 C语言实现最小二乘法计算y = a* x+b

曲线拟合

2022-06-02 15:05:36 736

原创 Linux设备树DTB存储格式

文章目录DTB存储格式DTB数据结构struct ftd_header区域数据结构memory reservation block区域数据结构struct block区域strings blockDTB存储格式头部(struct ftd_header):用来表明各个部分的偏移地址,整个文件的大小,版本号等等;内存的保留信息块(memory reservation block):存放dts文件中申明的需要预留的内存的信息;节点块(structure block):各个节点的信息将放在structu

2022-05-17 11:20:20 2317

原创 modbus RTU协议小结

文章目录0x01 读取线圈状态0x02 读取输入状态0x03 读取保持寄存器0x04 读取输入寄存器0x05 强制单线圈0x06 设置单寄存器0x07 读取异常状态(serial line only)0x08 回送诊断校验(serial line only)子功能码列表0x09 编程(用于484)0x0A 控询(用于484)0x0B 读取通信事件计数0x0C 读取通信事件记录0x0D 编程(184/384 484 584)0x0E 控询(184/384 484 584)0x0F 强制多线圈0x10 预置多寄

2021-09-09 16:28:45 1467 1

原创 Linux之Socket梳理和进程通信

Linux之Socket梳理和进程通信

2021-04-09 10:40:44 198

原创 Go语言学习要点

文章目录编译跨平台的二进制文件语法基础编译跨平台的二进制文件打开终端(一定要cmd终端才可以)SET GOOS=linuxSET GOARCH=amd64GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)GOARCH:目标平台的体系架构(386、amd64、arm编译go build xxx.go语法基础基础语法教程:https://www.runoob.com/go/go-tutorial.htmlgo语言的Web应用教程:https

2021-02-09 15:43:39 189

原创 搭建C/C++自动化构建环境

文章目录搭建环境ubuntu18.04安装Jenkins安装jenkins插件创建管理员用户安装GitlabJenkins使用教程源代码准备创建流水线项目创建多分支流水线为流水线创建执行步骤构建流水线搭建环境Ubuntu18.04VSCodeJenkinsGitGitlabubuntu18.04安装Jenkinswget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -sudo sh -c

2021-02-09 10:33:50 1516

原创 Linux:宿主机与目标机的tftp和nfs环境搭建

文章目录宿主机(Ubuntu)配置交叉编译环境安装和配置TFTPTFTPxinetd和TFTP安装和配置NFS安装NFS服务端安装NFS客户端目标机启动运行编译uImage编译设备树通过TFTP启动内核通过NFS挂载rootfs系统宿主机(Ubuntu)配置交叉编译环境Ubuntu装的是64位的,交叉编译工具一般是32位的,所以要安装一些库sudo apt-get install u-boot-toolssudo apt-get install lib32z1sudo apt-get inst

2020-12-29 14:11:55 940

原创 Scons的简单使用

文章目录Scons环境搭建Scons常用参数常用内建变量创建环境变量复制环境变量获取环境变量扩展环境变量替换环境变量尾部增加环境变量值头部添加环境变量值编译可执行程序编译二进制文件编译库文件链接库编译判断源文件是否修改判断目标文件是否改变文件依赖Scons环境搭建安装python安装sconspython -m pip install sconsScons常用参数#scons -c clean#只显示编译信息,去除多余的打印信息scons -Q#保存依赖关系scons -Q

2020-12-23 16:51:54 1635

原创 ARM汇编指令以及伪指令

文章目录ARM寄存器ARM寻址方式数据处理指令转移指令程序状态寄存器访问指令加载/存储指令异常指令伪指令ARM的存储系统ATPCS介绍异常中断处理ARM链接器ARM寄存器R13:栈指针寄存器(SP)R14:连接寄存器(LR)R15:程序计数器(PC)由于ARM指令是字对齐,PC值的第0位和第1位总为0ARM寻址方式数据处理指令转移指令程序状态寄存器访问指令加载/存储指令异常指令伪指令ARM的存储系统ATPCS介绍异常中断处理ARM链接器...

2020-10-26 17:21:05 10547 2

原创 Linux正则表达式、grep、sed、awk简单使用

文章目录正则表达式元字符扩展元字符POSIX字符类补充使用案例grepsedsed使用详解sed使用方法sed命令sed和正则表达式基本sed编程举例使用p(rint)显示行附加、插入、修改、删除操作替换文本操作使用替换修改字符串将sed结果写入文件命令从文件中读文本匹配后退出显示文件中的控制字符快速一行命令一下是常用命令集([]表示空格,[ ]表示tab键 )awk正则表达式元字符特殊字符描述.匹配除换行符之外的任意单个字符,在awk中,也能匹配换行符*匹配任意一个(包

2020-09-25 15:36:15 552

原创 iptables命令详解和使用案例

文章目录iptables的工作原理Linux的iptables概念框图:iptable的链和表结构详细的数据包流程iptables的工作机制防火墙策略iptables规则的写法:详解iptables的COMMAND:详细的CRETIRIA 匹配标准iptables的进阶使用详解-j ACTION案例1:状态检测案例2SNAT和DNAT的实现SNAT基于源地址的转换DNAT目标地址转换iptables控制规则的存放以及开启iptable常用命令功iptable应用场景内网服务器应用场景ip映射iptable

2020-09-22 17:29:55 3000

原创 Linux命令行无线网卡连接

文章目录通过shell连接WiFi热点通过配置网卡设备连接WiFi网络配置无线网卡为AP模式共享网络建立Linux DHCP服务器,windows主机可共享上网通过shell连接WiFi热点查询无线网卡名称:iwconfig启动无线网卡:sudo ip link set wlan0 up扫描无线网络:sudo iw dev wlan0 scan(获取无线网络的SSID名称、信号强度、加密方式)直接连接无线网络连接没有加密的无线网络:sudo iw dev wlan0 connect

2020-09-18 16:51:18 6581

原创 QT获取有线或无线网卡的MAC地址、IP地址、可读网卡名称

QT获取有线或无线网卡的MAC地址、IP地址、可读网卡名称#include <iphlpapi.h>#include <QProcess>#pragma comment(lib, "IPHLPAPI.lib")bool MainWindow::IPConnectCheck(QString IP, QString sourceIP){ QString cmdString; if (sourceIP.compare("0.0.0.0") == 0) {

2020-08-21 14:18:02 2433

原创 VScode远程Linux开发C/C++

文章目录Linux服务端安装openssh-serveropenssh-server配置Windows开发端安装open-sshopen-ssh配置vscode安装插件修改默认配置vscode链接远程调试运行C/C++代码Linux端Windows端vscode安装插件创建tasks.json文件Linux服务端安装openssh-serversudo apt-get install openssh-serveropenssh-server配置使用ssh localhost命令,生成下.ss

2020-08-11 17:22:08 7548

原创 scanf()函数的高级应用

文章目录scanf()的完整语法清空缓冲区读取指定长度匹配特定字符不匹配某些字符丢弃特定字符scanf()的完整语法int scanf(const char *format, …);format:%{*} {width} type (其中,{ } 表示可有可无)type表示读取什么类型的数据,例如 %d、%s、%[a-z]、%[^\n] 等;type 必须有width表示最大读取宽度,可有可无*表示丢弃读取到的数据,可有可无清空缓冲区需要清空缓冲区的时候,缓冲区中的最后一个字符一定

2020-08-11 15:13:35 314

原创 VSCode在Windows中调试C/C++

文章目录下载VScode下载编译器安装编译器VScode安装插件VScode设置调试C/C++下载VScode官方地址:https://code.visualstudio.com/下载编译器C/C++的mingw-w64编译器下载地址:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/后缀说明DWARF:一种带调试信息(DWARF- 2(DW2)EH)的包, 所以比一般的包尺寸大,仅支持32位系统SJLJ:跨平台,支

2020-08-10 17:40:06 2657

原创 Linux2.6.33进程地址空间

文章目录

2020-08-03 10:03:00 392

原创 Linux2.6.33块I/O层

文章目录

2020-07-30 19:10:16 153

原创 Linux2.6.33虚拟文件系统

文章目录

2020-07-30 10:53:56 606 1

原创 Linux2.6.33内存管理

文章目录

2020-07-28 19:27:19 563

原创 Linux2.6.33定时器和时间管理

文章目录节拍率:Hzjiffies实际时间(RTC时间)定时器使用定时器延迟执行节拍率:Hz系统定时器频率是通过静态预处理定义的,在系统启动时按照Hz值对硬件进行设置内核在<asm/param.h>文件中定义Hzjiffies全局变量jiffies用来记录自系统以来产生的节拍总数,启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序就会增加该变量的值jiffies定义文件<linux/jiffies.h>中:extern unsigned long volat

2020-07-27 15:01:27 162

原创 Linux2.6.33内核同步以及用户同步

文章目录并发原因内核同步方法原子操作原子整数操作原子位操作自旋锁自旋锁方法自旋锁和下半部读-写自旋锁信号量创建和初始化信号量使用信号量读-写信号量互斥体completionBLK:大内核锁顺序锁禁止抢占顺序和屏障并发原因中断:中断可以在任何时候发生,因此可以随时打断当前正在执行的代码软中断和tasklet:内核能在任何时刻唤醒或调度软中断和tasklet,打断正在运行的代码内核抢占:内核的任务可能被另一任务抢占睡眠与用户空间同步:在内核执行的进程可能会睡眠,从而导致调度一个新的用户进程执行对称

2020-07-24 19:20:21 650

原创 Linux2.6.33的中断以及中断后半部执行

文章目录中断和中断处理注册或注销中断处理程序中断处理程序中断处理机制的实现中断控制下半部和推后执行的工作中断和中断处理中断上下文:被内核调用来响应中断的中断处理程序(中断服务例程)注册或注销中断处理程序request_irq的参数说明:irq:表示分配的中断号handler:一个指针,指向这个中断实际处理程序flags:可以为0,也可以是多个标志的位掩码,其定义在<linux/interrupt.h>name:与中断相关的设备ASCII文本,会被/proc/irq和proc/i

2020-07-23 09:14:33 261

原创 Linux2.6.33的内核数据结构

链表1、链表数据结构#include <linux/list.h>strcut list_head{ struct list_head *next; struct list_head *prev;}从结构体成员指针找到结构体地址#include <linux/stddef.h>#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE*)0)->MEMBER)#define contain

2020-07-20 18:34:35 177

原创 binutils几个重要工具使用方法总结

文章目录binutils软件包addr2linearldnmobjcopyobjdumpsizestringsstripbinutils软件包工具说明addr2line把程序地址转换为文件名和行号。在命令行中给它一个地址和一个可执行文件名,它就会使用这个可执行文件的调试信息指出在给出的地址上是哪个文件以及行号ar建立、修改、提取归档文件。归档文件是包含多个文件内容的一个大文件,其结构保证了可以恢复原始文件内容as主要用来编译GNU C编译器gcc输出的汇编文件,产生

2020-05-22 18:06:43 2006

原创 CMake2.8.3命令

文章目录add_custom_commandadd_custom_targetadd_definitionsadd_dependenciesadd_executableadd_libraryadd_subdirectoryadd_testaux_source_directorybreakbuild_commandcmake_minimum_requiredcmake_policyconfigure_filecreate_test_sourcelistdefine_propertyenable_languag

2020-05-21 15:37:17 1457

原创 automake应用小结

文章目录Configure、Makefile.am、Makefile.in、Makefile文件关系autoscan(autoconf)aclocal(automake)autoheader(autoconf)automakeautoconfautomake操作流程configure.in内容修改Configure、Makefile.am、Makefile.in、Makefile文件关系au...

2020-04-14 15:54:05 351

原创 Linux之线程Thread小结

文章目录线程相关操作函数pthread_create 创建新新程获取线程ID线程终止线程等待分离线程线程同步互斥锁条件变量读写锁信号量线程私有数据线程属性属性操作函数线程属性创建和销毁线程继承属性线程调度策略线程调度参数线程的作用域线程分离和非分离属性线程堆栈地址线程栈地址和大小线程栈大小线程栈保护区大小线程的作用域(scope)线程的绑定状态(binding state)线程的分离状态(deta...

2020-04-13 15:36:24 1126 1

原创 Linux之UART小结

文章目录UART操作流程重要数据结构c_iflag输入模式标志,控制终端输入方式c_oflag输出模式标志,控制终端输出方式c_cflag控制模式标志,指定终端硬件控制信息c_lflag本地模式标志,控制终端编辑功能c_line行控制c_cc[NCC]控制字符操作函数tcgetattr()tcsetattr()tcsendbreak()tcdrain()tcflush()tcflow()波特率函数...

2020-04-12 21:03:10 2196

原创 Linux之CAN小结

文章目录Linux Shell操作查询CAN信息开启/关闭CAN发送/接收CAN数据设置CAN参数虚拟VCANLinux CAN编程主要头文件CAN重要数据结构struct ifreqstruct sockaddr_canstruct can_filterstruct can_frameCAN的协议域socket()函数对应的参数Socket的协议域Socket的网络类型SOcket协议Socke...

2020-04-09 14:23:14 2888

原创 Linux底层之Sysfs

文章目录Sysfs简介Linux设备底层模型KobjectKobj_typeKsetkset与kobject的关系图subsysemSysfs简介Sysfs文件系统是类似于proc文件系统的特殊文件系统,用于将系统的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息.ls /sys/block目录:包含所有的块设备devices目录:包含系统所有的设备,并根据设备挂接的总...

2020-04-07 20:26:23 796

原创 CMAKE超级简单入门

文章目录常见编译选项预处理编译选项屏蔽警告常见编译选项预处理-D 编译宏定义:-D<标识符>相当于#define <标识符>,如-DDBUG-I 头文件包含路径:-I/backup/include-sysroot 系统头文件路径:-sysroot=/home/sysroot-MD 自动生成依赖文件:-MD,-MP 为依赖项生成假目标:-MT 更改目标名称:...

2020-03-31 15:27:14 1804

原创 Linux的GDB调试

文章目录系统开关用法常用的GDB命令启动GDBGDB显示数据printwhatisexamine断点break断点管理单步执行函数调用机器语言工具信号捕获信号发送信号GDB多线程系统开关ulimit -c unlimited 程序dump时,在当前目录下生成core.pid(pid为进程号)的文件gcore pid(调试进程的pid)手动生成core文件用法gdb [option...

2020-03-30 15:18:44 1494

转载 Linux信号列表及其详解

文章目录信号列表信号详解不可靠信号SIGHUPSIGINTSIGQUITSIGILLSIGTRAPSIGABRTSIGBUSSIGFPESIGKILLSIGUSR1SIGSEGVSIGUSR2SIGPIPESIGALRMSIGTERMSIGCHLDSIGCONTSIGSTOPSIGTSTPSIGTTINSIGTTOUSIGURGSIGXCPUSIGXFSZSIGVTALRMSIGPROFSIGWI...

2020-03-30 14:49:27 140

原创 GNU编译器的命令参数变量

文章目录ARFLAGSASFLAGSCFLAGS(常用)CXXFLAGS(常用)COFLAGSCPPFLAGS(常用)FFLAGSGFLAGSLDFLAGS(常用)LIBS(常用)LFLAGSPFLAGSRFLAGSYFLAGS-D:条件选择编译-I :头文件搜索路径-l:连接静态库ARFLAGS函数库打包程序AR命令的参数。默认值是“rv”。ASFLAGS汇编语言编译器参数。(当明...

2020-03-26 12:26:08 898 1

原创 Shell脚本记忆点

文章目录变量变量的使用只读变量删除变量shell字符串单引号双引号拼接字符串获取字符串长度提取子字符串查找子字符串shell数组定义数组读取数组数组操作shell的特殊变量运算符printf命令流程控制ifforwhileuntilcaseshell函数输入输出重定向shell文件包含test命令详解判断表达式判断字符串判断整数判断文件变量变量的使用$varName或${varName}...

2020-03-25 19:32:35 942

RTOS嵌入式系统入门

RTOS嵌入式系统入门,基于STM32的嵌入式系统

2016-07-29

OrCAD设计教程

OrCAD_Capture_CIS原理图设计教程

2014-12-17

空空如也

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

TA关注的人

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