自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (7)
  • 收藏
  • 关注

原创 Makefile中的打印调试信息的几个方法

Makefile

2024-02-01 12:30:31 1201

转载 stm32常见通信方式(TTL、RS232、RS485、CAN)总结

一、TTL电平:全双工(逻辑1: 2.4V--5V   逻辑0: 0V--0.5V) 1、硬件框图如下,TTL用于两个MCU间通信 2、‘0’和‘1’表示  二、RS-232电平:全双工(逻辑1:-15V--5V  逻辑0:+...

2020-05-20 10:26:24 957

原创 gnu 内建函数

__builtinconstantp(n)

2020-05-16 21:54:20 120

原创 gnu 内建函数

__builtinconstantp(n)

2020-05-16 21:50:12 220

原创 __builtin_expect(!!(x),1)

#define likely(x) __builtin_expect(!!(x),1)#define unlikely(x) __builtin_expect(!!(x),0)这两个宏的主要作用,就是告诉编译器:某一个分支发生的概率很高,或者说很低,基本不可能发生。编译器就根据这个提示信息,就会去做一些分值预测的编译优化。在这两个宏定义有一个细节,就是对宏的参数 x 做两次取非操作,这是为了将参数 x 转换为布尔类型,然后与 1 和 0 作比较,告诉编译器 x 为真或为假的可能性很高。..

2020-05-16 21:48:03 2338

原创 __builtin_return_address(LEVEL) __builtin_frame_address(LEVEL)

__builtin_return_address(LEVEL) __builtin_frame_address(LEVEL) LEVEL 只能取0 1 2......常数,不能用变量 层级太多段错误

2020-05-16 21:38:03 650

原创 linux内核中GNU C和标准C的区别

gnuc 是标准c 的扩展1. 从安全的最值定义可以想到区别有3点:1.1 支持将大括号的复合语句当成一个表达式,成为语句表达式 1.2 typeof 关键字 可以获取一个变量的类型 1.3 宏定义 可以带变参数2...

2020-05-14 22:26:52 490

原创 多线程编程-条件变量

1.引言:条件变量是一种同步机制,允许线程挂起,直到共享数据上的某些条件得到满足。条件变量上的基本操作有:触发条件(当条件变为 true 时);等待条件,挂起线程直到其他线程触发条件。    条件变量要和互斥量相联结,以避免出现条件竞争--一个线程预备等待一个条件变量,当它在真正进入等待之前,另一个线程恰好触发了该条件。2.函数说明:1)初始化条件变量pthread_...

2020-01-01 00:21:59 190

转载 linux下 查找任意 宏 或者结构体定义 所在的头文件

...

2019-12-25 10:25:29 416

转载 C语言再学习 -- 时间函数

                                 &...

2019-12-21 22:19:32 491

转载 037 UNIX再学习 -- TCP/UDP 客户机/服务器

                                 &...

2019-12-19 19:49:42 135

转载 036 UNIX再学习 -- 网络与网络协议

                                 &...

2019-12-19 19:48:36 201

转载 035 UNIX再学习 -- 网络IPC:套接字

                                 &...

2019-12-19 19:47:09 225

转载 034 UNIX再学习 -- XSI IPC通信方式

                                 &...

2019-12-19 19:46:01 150

转载 033 UNIX再学习 -- 进程间通信之管道

                                 &...

2019-12-19 19:43:55 156

原创 032 UNIX再学习 -- 高级 I/O

后面再写

2019-12-19 19:42:17 61

转载 031 UNIX再学习 -- RS485 串口编程

                                 &...

2019-12-18 21:49:40 425

转载 030 UNIX再学习 -- 函数 select、poll、epoll

                                 &...

2019-12-18 21:43:57 188

转载 029 UNIX再学习 -- 记录锁

                                 &...

2019-12-18 21:38:12 104

转载 028 UNIX再学习 -- 守护进程

                                 &...

2019-12-18 21:36:35 91

原创 027 UNIX再学习 -- 线程控制

以后再讲

2019-12-18 21:35:04 69

转载 026 UNIX再学习 -- 线程同步

                                 &...

2019-12-18 21:32:17 150

转载 025 UNIX再学习 -- 线程

                                 &...

2019-12-18 21:31:05 118

转载 024 UNIX再学习 -- 进程关系

                                 &...

2019-12-18 21:29:29 91

转载 023 UNIX再学习 -- 函数abort

                                 &...

2019-12-18 21:28:12 116

转载 022 UNIX再学习 -- 信号处理

                                 &...

2019-12-18 21:24:36 243

转载 021 UNIX再学习 -- 发送信号

                                 &...

2019-12-18 21:22:47 110

转载 020 UNIX再学习 -- 可重入函数和 SIGCHLD 语义

                                 &...

2019-12-18 21:20:45 67

转载 019 UNIX再学习 -- 信号

                                 &...

2019-12-18 21:19:20 614

转载 018 UNIX再学习 -- 用户 ID 和组 ID

                                 &...

2019-12-18 21:18:02 242

转载 017 UNIX再学习 -- 函数 system

                                 &...

2019-12-18 21:16:04 125

转载 016 UNIX再学习 -- exec 函数族

                                 &...

2019-12-18 21:12:47 224

转载 015 UNIX再学习 -- exit 和 wait 系列函数

                                 &...

2019-12-18 21:10:31 203

转载 014 UNIX再学习 -- 函数 fork 和 vfork

                                 &...

2019-12-18 21:07:59 92

转载 013 UNIX再学习 -- ps、top、kill 指令

                                 &...

2019-12-18 21:00:35 245

原创 深入理解C语言的函数调用过程

如果我们有个函数原型:int funtest(int x,int y int z char* ptr),在汇编层面,当调用它时栈的布局结构一般是下面这个样子:

2019-11-27 15:27:35 123

转载 backtrace 实现原理

显示函数调用关系(backtrace/callstack)是调试器必备的功能之一,比如在gdb里,用bt命令就可以查看backtrace。在程序崩溃的时候,函数调用关系有助于快速定位问题的根源,了解它的实现原理,可以扩充自己的知识面,在没有调试器的情况下,也能实现自己backtrace。更重要的是,分析backtrace的实现原理很有意思。现在我们一起来研究一下:glibc提供了一个backtr...

2019-11-26 21:41:16 5952

转载 bracktrace

转自:http://www.xuebuyuan.com/1504689.html一.用途:主要用于程序异常退出时寻找错误原因二.功能:回溯堆栈,简单的说就是可以列出当前函数调用关系三.原理:1. 通过对当前堆栈的分析,找到其上层函数在栈中的帧地址,再分析上层函数的堆栈,再找再上层的帧地址……一直找到最顶层为止,帧地址指的是一块:在栈上存放局部变量,上层返回地址,及寄存器值的空间。2....

2019-11-26 21:39:58 234

原创 006 解决段错误的方法

1 段错误通常系统发送SIGSEGV 信号,所以在自己的程序中处理该信号,用signal可以设置信号处理函数2 在信号处理函数中打印出回溯函数,有下面三个函数可用:#include <execinfo.h>int backtrace(void **buffer, int size);char **backtrace_symbols(void *const *buffer, in...

2019-11-26 20:44:24 348

转载 在Linux中如何利用backtrace信息解决问题----段错误系统发送SIGSEGV

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...

2019-11-26 19:44:04 363 1

linux中利用tacktrace信息解决段错误

linux中利用tacktrace信息解决段错误

2022-04-22

详细描述了Makefile自动产生依赖文件的参数

详细描述了Makefile自动产生依赖文件的参数

2022-04-22

全面细致的正则表达式入门教程

正则表达式的语法讲解,有例子,可以方便我们测试,加强记忆

2022-04-22

电子技术基础.数字部分.(康华光.第5版).pdf )

各大电子院校电子信息工程类专业经典数字电路教材-电子技术基础.数字部分.(康华光.第5版).pdf 。字体非常清晰,看着很舒服!

2015-03-16

《C程序设计语言》

《C程序设计语言》

2015-03-10

空空如也

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

TA关注的人

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