![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux C
代码穿越
勇于承认自己蠢 勇于承认自己笨
展开
-
MYSQL的C语言预处理接口示例
MYSQL的建表语句DROP TABLE test_ys_tbl;CREATE TABLE IF NOT EXISTS `test_ys_tbl`( `Row1` INT NOT NULL, `Row2` VARCHAR(100) NOT NULL, `Row3` float NOT NULL, `Row4` double NOT NULL, `Row5` timestamp NOT NULL default CURRENT_TIMESTAMP, PRIMAR.原创 2021-03-27 22:36:22 · 217 阅读 · 0 评论 -
Linux驱动开发(四)——模块声明与描述
本次实验中主要讲述宏:MODULE_LICENSE MODULE_AUTHOR MODULE_DESCRIPTION MODULE_SUPPORTED_DEVICE和modinfo命令的使用。 宏 MODULE_LICENSE的作用主要是声明描述内核模块的许可权限,如果程序中不进行此声明,则在模块加载时,将会报出“ module license 'unspecifie...原创 2018-04-07 21:18:38 · 2156 阅读 · 0 评论 -
Linux驱动开发(二)——Makefile简介
在Linux系统下使用gcc编译器编译一个C语言文件时,我们可以输入:gcc -o a a.c来完成。更详细的编译过程可以分为:第一步:预处理生成预处理文件(.i) gcc -E a.c -o a.i第二步:编译生成汇编文件(.s) gcc -S a.i -o a.s第三步:汇编生成目标文件(.o) gcc -...原创 2018-03-31 21:50:50 · 237 阅读 · 0 评论 -
Linux 交叉工具链的安装
如果想要自己编译工具链,可以打开此链接下载源码:http://ymorin.is-a-geek.org/download/crosstool-ng/首先,输入下列命令:$ sudo apt-get install libncurses5-dev安装这些软件。输入命令:$ cd ~进入用户主目录输入命令:$ mkdir armcortex创建armcortex文件夹输入命令:$ tar -xvf c...原创 2018-03-31 22:53:00 · 454 阅读 · 0 评论 -
Linux驱动开发(三)——模块初始化和卸载函数
在(一)中,主要讲述了模块的基本组成,加载,卸载和查看工具的使用。本篇中,主要讲述module_init()和module_exit()这两个函数的使用。 在(一)中给的源码文件中,模块初始化和卸载函数为:init_module()和cleanup_module()。这两个函数名是默认的模块初始化函数名和模块卸载函数。我们可以使用module_init和modul...原创 2018-04-02 12:51:50 · 1546 阅读 · 0 评论 -
Linux驱动开发(一)——简单模块介绍
本科大三时期,学习了一年的嵌入式程序设计。最近一段时间,会将那段时间的学习过的资料和内容进行整理,陆续发出来。 Linux驱动程序设计过程中,提到的模块概念与我们在软件工程中提到的模块概念并不相同。在软件工程概念中,我们提到模块的概念具有抽象性。但在Linux驱动开发中,模块是具有独立功能的程序实体,它可以被单独编译,但不能独立运行。它的作用是为内核或其他内核模块提供使用...原创 2018-03-29 16:58:40 · 431 阅读 · 0 评论 -
Valgrind工具之内存检测
Valgrind安装方法:按顺序执行以下命令:1. wget http://www.valgrind.org/downloads/valgrind-3.10.0.tar.bz2(从valgrind官网上下载压缩包)2. tar xvf valgrind-3.13.0(解压压缩包)3. cd valgrind-3.10.03. ./configure --prefix=/home/UserName...原创 2018-06-10 15:59:55 · 1993 阅读 · 0 评论