标签 define 下的文章
- 📂linux内核中的IS_ERR()、PTR_ERR()、ERR_PTR()教程
原文地址linux内核中的IS\_ERR()、PTR\_ERR()、ERR\_PTR() IS\_ERR宏定义在include/linux/err.h,如下所示:define MAX\_ERRNO 4095// 判断x是不是在(0xfffff000,0xf fffffff)之间,注意这里用unlikely()的用意 #define IS\_ERR\_VALUE(x) unlikely(...
- 📂更改Windows可执行文件的图标教程
Resource.h//{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by Resource.rc // #define IDI_APPICON 108 // Next default values for new objects // #if...
- 📂嵌入式Linux开发第二步——C语言点灯实验教程
1. 前言一般情况下用汇编写嵌入式驱动很难,只是在开始部分用汇编来初始化一下 C 语言环境,比如初始化 DDR、设置堆栈指针 SP 等等,当这些工作都做完以后就可以进入 C 语言环境,也就是运行 C 语言代码,一般都是进入 main 函数。所以我们有两部分文件要做: ①、汇编文件 汇编文件只是用来完成 C 语言环境搭建。 ②、C 语言文件 C 语言文件就是完成我们的业务层代码...
- 📂linux kernel的virtual kernel memory layout介绍(aarch64)教程
相关文件: memory.h pgtable.h fixmap.h page.h1、重要的配置 我们就以VA\_BITS=48,PAGE\_SIZE=4k来介绍 (1)、(VA\_BITS) (arch/arm64/Kconfig)config ARM64_VA_BITS_36 bool "36-bit" if EXPERT de...
- 📂5.nginx字符串(ngx_str_t)教程
nginx 字符串定义typedef struct { size_t len; //数据长度 u_char *data; //数据 } ngx_str_t; len:字符串大小data:字符串有了len成员标志可以不使用C风格的字符串以’\0’结尾字符串初始化#define ngx_string(str) { sizeof(str) - ...
- 📂Flex 将输入设置为内存字符串教程
#include <iostream> #include "lexer.h" #define yylex aaslex #define yy_scan_string aas_scan_string #define yy_delete_buffer aas_delete_buffer int main() { std::string src = &quo...
- 📂C++ 系统宏定义 windows mac linux android ios教程
C++ 系统宏定义<pre class="brush:html;toolbar:false">#ifdef _WIN32 //define something for Windows (32-bit and 64-bit, this part is common) #ifdef _WIN64 //define something for...
- 📂Linux上使用设置printf显示的颜色教程
我们经常看到别的屏幕五颜六色的很是羡慕,看着很炫是吧。其实我们也可以自己做一个简单的修改,是我们的显示结果也呈现出不同的颜色。shell脚本可能设置的比较多,但是我们平常使用C语言却很少设置它的颜色,而实际上这个是可以设置的。 格式如下:\033[字背景颜色;字体颜色m字符串\033[0m举个例子如下:(为了方便,我自己特意定义了用于两个调试的宏函数, 以后查看debug信息就方便很多了)...
- 📂Linux内核 eBPF基础:perf(1):perf_event在内核中的初始化教程
Linux内核 eBPF基础perf(1):perf\_event在内核中的初始化 荣涛2021年5月12日 本文相关注释代码:https://github.com/Rtoax/linux-5.10.131. 初始化函数调用关系1.1. start\_kernel可参见《Linux开机启动过程(10):start\_kernel 初始化(至setup\_arch初期)》系列文章。在内核启...
- 📂linux设备号教程
什么是设备号? ============================linux中设备号是用来标记一类设备以及区分这类设备中具体个体的一组号码,由主设备号和次设备号组成,主设备号用来标记设备的类型,次设备号用来区分在这类设备中具体的个体设备。为什么用设备号? =============================我们知道"linux下一切皆文件",linux系统将设备抽象成设备文件...
- 📂linux驱动中ioctl使用教程
linux驱动中ioctl使用在驱动头文件中定义幻数 #define OLED_IOC_MAGIC 'k' #define OLED_IOC_OPEN _IO(OLED_IOC_MAGIC, 1) #define OLED_IOC_CLOSE _IO(OLED_IOC_MAGIC, 2) #define OLED_IOC_SET_POINT _...
- 📂Windows 编程【21】 - WM_MENUSELECT 消息与 GetMenuString 函数教程
Windows 编程[21] - WM\_MENUSELECT 消息与 GetMenuString 函数 提示: 1、菜单项的标识存放在 WM\_MENUSELECT 消息的 lParam 参数中的低两位. 2、WM\_MENUSELECT 也包括系统菜单发送的消息. 3、因为顶层菜单(File Edit Help)一般在资源文件中设同样的标识符(譬如: 65535), 所以系统会把...
- 📂Windows 编程【15】 - 菜单消息: WM_COMMAND教程
Windows 编程[15] - 菜单消息: WM\_COMMAND 本例效果图: - - - - - -点击任一个菜单项, 都会发出一个 WM\_COMMAND 消息, 消息的 wParam 参数的低两位就是标识菜单项的那个整数!- - - - - -本例使用的资源文件(TestRes.rc):- - - - - -<pre class="cpp">#de...
- 📂Windows 编程【14】 - 菜单与菜单资源(三)教程
Windows 编程[14] - 菜单与菜单资源(三) 前面我们分别使用过 MENU 和 MENUEX 来指定菜单资源, 我发现用 MENU 不必注意大小写; 但 MENUEX 在使用参数时需要注意大小写! 另外, 指定相同的功能时, 它们使用的参数和格式也有很大的区别. 我想还是多了解 MENUEX 吧, 因为它的参数同时也是 Win32API 菜单函数们 需要的!- - - - - -M...
- 📂Windows 编程【13】 - 菜单与菜单资源(二)教程
Windows 编程[13] - 菜单与菜单资源(二) 我们可以把上例中的资源文件修改成这样:- - - - - -<pre class="cpp">MyMenu1 MENUEX BEGIN POPUP "&File" ,65535 BEGIN MENUITEM "&New"...
- 📂嵌入式linux开发uboot移植(七)——三星官方uboot的移植教程
嵌入式linux开发uboot移植(七)——三星官方uboot的移植友善之臂Smart210开发板是基于三星SMDKV210评估板裁剪、调整而来的。因此三星官方发布的基于SMDKV210评估板的uboot是移植uboot到Smart210开发板的最合适uboot版本。本文将SMDKV210的uboot移植到Smart210开发板。Smart210开发板的配置如下:SoC:Samsung S5...
- 📂从0实现基于Linux socket聊天室-实现聊天室的登录、注册功能-3教程
上一篇我们已经讲了如何搭建一个多线程的服务器模型,可以支持多个客户端同时连接服务器,本篇我们来实现多个客户端,如何实现向服务器注册信息,并实现登录的功能。数据结构接着上一篇的实例代码继续增加功能。 要实现注册和登录功能,那么我们就必须要让服务器和客户端在交互数据包的时候按照统一的格式收发信令。 信令格式//C/S通信的结构体struct protocol{int cmd; //...
- 📂linux文件系统初始化过程(4)---加载initrd(中)教程
一、目的上文详细介绍了CPIO格式的initrd文件,本文从源代码角度分析加载并解析initrd文件的过程。initrd文件和linux内核一般存储在磁盘空间中,在系统启动阶段由bootload负责把磁盘上的内核和initrd加载到指定的内存空间中;然后,再由内核读取和解析initrd文件,在VFS(目前只有rootfs的根目录)中新建目录、常规文件、符号链接文件以及特殊文件;这样VFS就从...
- 📂ubuntu20+cuda11.0+cudnn7.6.0安装caffe教程
查看cudnn版本<pre class="brush:python;gutter:true;">cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2<br></br><br></br>\#define CUDNN\_MAJOR 7 \#defin...
- 📂C++ 共享内存实验例程教程
服务端:#include <stdio.h> #include <windows.h> #include <iostream> using namespace std; #define MAP_PREFIX L"Local\\" #define MAP_NAME L"SampleMap" #define FU...
- 📂linux 内核task_struct 源码分析与解析(整合配图)教程
本文来自个人网站 https://htmonster.xyz/blog/post/linux-nei-he-task-struct-yuan-ma-fen-xi-yu-jie-xi/文章目录进程状态0. 进程标志符1. 运行状态2. 进程标记任务状态1. 任务终止2.ABI处理3.execve4.io等待进程内核栈地址内核栈布局进程调度1.优先级2. 调度策略3. 进程调度调度器调度器策略实...
- 📂Linux系统下搭建PX4/Pixhawk原生固件编译环境教程
对于新版本的固件V1.11.3,在pixhawk官网可以找到开发环境的搭建,这里把开发环境链接贴出来:https://docs.px4.io/master/zh/dev_setup/dev_env_linux_ubuntu.html 但是新版本的代码过于复杂,有时候想要学习代码可以下载老版本的代码,但是经过实验发现,搭建好的新版本的环境编译老版本的代码经常出错,因此将自己实验过程中出现的...
- 📂Linux数据报文接收发送总结4教程
二、系统初始化Linux驱动,内核协议栈等等模块在具备接收网卡数据包之前,要做很多的准备工作才行。比如要提前创建好ksoftirqd内核线程,要注册好各个协议对应的处理函数,网络设备子系统要提前初始化好,网卡要启动好。只有这些都Ready之后,我们才能真正开始接收数据包。那么我们现在来看看这些准备工作都是怎么做的。Linux的子系统、模块均定义了一定的启动级别,在start\_kernel函...
- 📂Linux启动第一集 之世界最有名的一个函数名教程
首先看一下内核中最有名气的一个函数(top1):asmlinkage \_\_visible void \_\_init start\_kernel(void)第一个函数出来就有三个知识点,派头确实很大。asmlinkage:确保所有的参数都是栈传递。\#ifdef \_\_cplusplus\#define CPP\_ASMLINKAGE extern "C"\#else\#define ...
- 📂Windows Socket 套接字编程原理(转载)教程
Windows Socket 套接字编程原理(转载) 原文地址:http://blog.sina.com.cn/s/blog\_7c35df9b0100x64v.html一、客户机/服务器模式 在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model)。该模式的建立基于以下两点:1、非对等作用;2、通信完全是异步的。客户机/服务器模式...
- 📂Windows下clion编写程序提示:implicit declaration of function ‘fork‘教程
业精于勤,荒于嬉;行成于思,毁于随。——韩愈为在windows下编写linux c/c++程序,本地搭建了clion+MinGW+cmake环境。在进行linux编程时,进行调用fork()函数时:#include <sys/types.h> #include <dirent.h> #include <stdio.h> #include <unist...
- 📂VisualStudio C++内存泄漏的检测方法教程
代码#define _CRTDBG_MAP_ALLOC #include <iostream> #include <crtdbg.h> using namespace std; void test1() { int* p = new int[10]; //int* p = (int*)malloc(sizeof(int) * 10); } vo...
- 📂01Linux驱动模块02教程
二、内核中的信息打印-->printk1、打印级别============================================================================vim include/linux/printk.h +9 内核中的打印级别,8个级别,(0~7)级,数值越小,级别越高 (0~2)3个级别不常用, (3~7)4个级别会常用, ...
- 📂linux中断的一些过程教程
硬件发生中断过程和软件识别中断过程是相反的cpu读取中断控制器是那个模块发生了中断.\#if 0 \#define WM831X\_IRQ\_TEMP\_THW 0 \#define WM831X\_IRQ\_GPIO\_1 1 \#define WM831X\_IRQ\_GPIO\_2...
- 📂【linux】系统调用版串口分析&源码实战教程
目录- 前言参考1. 实战分析1.1 开发步骤1.1.1 获取串口设备路径1.1.2 打开设备文件1.1.3 配置串口termios 结构体1. c\_iflag 输入模式标志2. c\_oflag 输出模式标志3. c\_cflag 控制模式标志4. c\_lflag 本地模式标志5. c\_cc[NCCS] 控制字符6. c\_ispeed和c\_ospeed 波特率分析1.1.4 串口...