- 博客(10)
- 收藏
- 关注
原创 Linux内核驱动基础框架demo
驱动代码pindriver.c#include <linux/fs.h> //file_operations 声明#include <linux/module.h> //module_init module_exit 声明#include <linux/init.h> // __init __exit 宏定义声明#include <linux/device.h> //class device 声明#include <lin
2020-08-05 18:32:47
403
1
原创 树莓派Linux内核配置、编译
一、树莓派Linux源码目录树https://www.cnblogs.com/senior-engineer/p/4929703.html二、树莓派Linux源码配置驱动代码的编译需要一个提前编译好的内核,编译内核就必须配置,配置的最终目标会生成 .config文件,该文件指导Makefile去把有用东西组织成内核。第一种方式:make menuconfig 一项项配置ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make
2020-08-05 18:32:27
704
原创 交叉编译工具链的安装配置
一、交叉编译交叉编译是在一个平台上生成另一个平台上的可执行代码。编译:是在一个平台上生成在该平台上的可执行代码二、交叉编译工具链的安装https://github.com/raspberrypi/解压 unzip tools-master.zip进入目录 cd /home/will/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/binpwd获得路径pwd/home/will/tools-
2020-08-05 18:32:09
673
原创 树莓派开发 基础配置笔记
一、树莓派刷机通过 Win32DiskImager 刷机二、树莓派登录1、串口登录1.1、打开SD卡根目录的"config.txt"文件,将以下内容添加在最后并且保存。dtoverlay=pi3-miniuart-bt这样就停止了蓝牙,解除了对串口的占用。1.2、然后再修改根目录的"cmdline.txt",将里面的内容全部替换成以下内容,以防万一,请先备份好这个文件的原内容。dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200
2020-08-05 18:31:37
210
原创 Linux库编程(动态库、静态库)
一、静态库静态函数库,是在程序执行前(编译)就加入到目标程序中去了。优点:1.静态库被打包到应用程序中加载速度快2.发布程序无需提供静态库,因为已经在app中,移植方便缺点:1.链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。2.更新、部署、发布麻烦。静态库的制作:格式xxxx.agcc xxx.c -c 生成xxx.o文件ar rcs libxxx.a xxx.o xxx.o文件生成xxx.a静态库文件静态库的使用gcc calculatorT.c -lca
2020-08-05 18:31:08
272
原创 socket网络编程(TCP UDP)demo
一、socket在Linux中的网络编程是通过socket接口来进行的。人们常说的socket接口是一种特殊的I/O,它也是一种文件描述符。每一个socket都用一个半相关描述{协议,本地地址、本地端口}来表示;一个完整的套接字则用一个相关描述{协议,本地地址、本地端口、远程地址、远程端口}。socket也有一个类似于打开文件的函数调用,该函数返回一个整型的socket描述符,随后的连接建立、数据传输等操作都是通过socket来实现的。二、socket常用API1.创建套接字int socket(i
2020-08-05 18:30:08
772
原创 Linux 多线程 demo
一、线程简介线程是一个进程内的基本调度单位,好比轻量级的进程。多个线程在一个进程的共享内存空间中并发执行,它们共享一个进程的资源,如文件描述符和信号处理等,大大减少了上下文的开销。 运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而 且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。总的说来, 一个进程的开销大约是一个线程开销的 30 倍左右。 不同进程具有独立的数据空间,其数据的传递只能通过通信的方式进
2020-08-05 18:29:03
327
原创 IPC (管道、FIFO、消息队列、共享内存、信号、信号量)demo
进程间通信(IPC,InterProcess Communication)的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。一、管道管道是基于文件描述符的通信方式。当一个管道建立时,它会创建两个文件描述符fd[0]和fd[1]。其中fd[0]固定用于读管道,而fd[1]固定用于写管道。①半双工通信模式。②只用于具有亲缘关系的进程之间的通信。③可看成是一种特殊的文件。#include <unistd.h>#include <
2020-08-05 18:28:43
418
1
原创 C语言 双链表练习(实现班级学生成绩统计 计算平均分 最高最低分)
场景一个年级,相当链表A,该年级5个班,每个班5个人,相当于链表B1–B5做一个学生成绩管理系统学生成绩有语文 数学 英语功能录入成绩 找三科总分的最高分 最低分 算出平均分学生结构体struct Student{ int Stunum; //学号 int Chinese; int Math; int English; int Sum; //三科总分 struct Student *next;};班级结构体struct Class{ int Classn
2020-05-25 17:02:23
3838
原创 链表笔记 (前插法 后插法 头插法 尾插法)
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
2020-05-25 16:32:37
1645
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅