- 博客(141)
- 资源 (16)
- 收藏
- 关注

原创 Linux网络编程学习笔记
1.学习链接黑马程序员-Linux网络编程:https://www.bilibili.com/video/BV1iJ411S7UA2.课程安排视频选集 154节课 第1天 分 秒 done 第2天 分 秒 done 第3天 分 秒 done 第4天 分 秒 ...
2021-05-02 15:42:58
3382
1

原创 创客学院嵌入式驱动开发——学习资料汇总
1.创客学院知识巩固-01C语言回顾_C/C++_Set_Mode的博客-CSDN博客https://blog.csdn.net/Set_Mode/article/details/944310502.创客学院知识巩固-02数据结构_Set_Mode的博客-CSDN博客https://blog.csdn.net/Set_Mode/article/details/944310873.创客学院知...
2020-04-19 21:23:05
4950
1
原创 imx6ull-mini开发板调试环境汇总
一、安装USB驱动相关页面:https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers下载链接:CP210x Universal Windows Driver v11.0.0https://www.silabs.com/documents/public/software/CP210x_Universal_Windows_Driver.zip二、Ubuntu环境配置1、安装git环境sudo apt-get in.
2022-02-13 17:22:48
1043
原创 4相直流步进电机工作原理+温度PID算法
STM32的PID温控https://blog.csdn.net/weixin_42068537/article/details/83684234
2021-06-08 00:37:52
1035
原创 网络编程7:本地套接字
1.基于UDP的网络编程1.1 TCP通信和UDP通信各自的优缺点 TCP: 面向连接的,可靠数据包传输。对于不稳定的网络层,采取完全弥补的通信方式。 丢包重传。 优点: 稳定。 数据流量稳定、速度稳定、顺序 缺点: 传输速度慢。相率低。开销大。 使用场景:数据的完整型要求较高,不追求效率。 大数据传输、文件传...
2021-05-16 23:07:27
791
原创 网络编程4:高并发服务器——多路I/O转接服务器设计(select、poll、epoll)
select、poll、epoll三者优缺点对比 1.select /* According to earlier standards */ #include <sys/time.h> #include <sys/types.h> #include <unis...
2021-05-04 08:47:06
607
1
原创 网络编程3.5:理解TCP状态时序图
TCP状态时序图如下:1.三次握手(创建连接)TCP数据报格式: TCP建立连接时,三次握手时序如下: 第一次握手:SYN, 1000(0), <mss 1460> //控制位SYN置1,32位序列号为1000,该段不携带有效载荷(数据字节数为0),mss(Maximum Segment Size,最大报文长度)选项值为1460;第二次握手:SY...
2021-05-03 15:39:17
5496
1
原创 网络编程3:高并发服务器——多进程和多线程服务器设计(fork、pthread_create)
1.程序流程多进程和多线程的服务器代码设计思路如下2.程序代码2.1 多进程服务器#include <stdio.h>#include <string.h>#include <netinet/in.h>#include <arpa/inet.h>#include <signal.h>#include <sys/wait.h>#include <ctype.h>#include <...
2021-05-02 23:16:12
475
原创 网络编程0:网络基础知识
1.网络应用程序设计模式C/S模式:传统的网络应用设计模式,客户机(client)/服务器(server)模式。需要在通讯两端各自部署客户机和服务器来完成数据通信。B/S模式:浏览器()/服务器(server)模式。只需在一端部署服务器,而另外一端使用每台PC都默认配置的浏览器即可完成数据的传输。模式 优点 缺点 应用举例 C/S 性能好;传输效率高;采用的协议相对灵活,可以在标准协议的基础上根据需求裁剪及定制。 工作量将成倍提升,开发周期较长,用户
2021-05-02 17:47:18
1005
原创 IMX6ULL framebuffer应用开发学习
1.如果关闭自带GUI方法1:永久关闭GUI程序直接把GUI程序从自启动目录移除[root@100ask:~]# mv /etc/init.d/S99myirhmi2 /root[root@100ask:~]# ls /etc/init.dS01syslogd S10udev S40network S50sshd rcKS02klogd S20urandom S49ntp S98swupdate rcS...
2021-05-01 15:41:32
983
原创 网络编程5:高并发服务器——基于epoll ET模式反应堆模型的服务器设计
/* *epoll基于非阻塞I/O事件驱动 */#include <stdio.h>#include <sys/socket.h>#include <sys/epoll.h>#include <arpa/inet.h>#include <fcntl.h>#include <unistd.h>#include <errno.h>#include <string.h>#include <.
2021-04-19 22:15:42
310
原创 网络编程2:多进程TCP服务器的设计——accept与fork函数的使用思考
1.多进程TCP服务器的代码框架主要的步骤如下,需要注意的点:(1)父进程仅仅用于监听,对应pid>0,需要关闭连接套接字conn_fd;(2)子进程仅仅用于连接后的数据传输,对应pid=0,需要关闭监听套接字listen_fd;(3)如果没有连接请求时,客户端accept函数一直处于阻塞状态,直到内核完成3次握手并返回连接结果。//1.创建监听套接字listen_fdlisten_fd=socket();//2.将监听套接字与服务器IP绑定bind();//3.
2021-04-11 18:07:41
3062
原创 网络编程1:简易的TCP socket编程
1.参考链接(1)【Linux网络编程】TCP网络编程中connect()、listen()和accept()三者之间的关系:https://blog.csdn.net/dengjin20104042056/article/details/52357452(2)Linux网络编程基础-03_TCP/IP网络编程https://blog.csdn.net/Set_Mode/article/details/902292392.关键函数(1)socketNAME s
2021-04-04 22:00:00
314
原创 imx6ull开发板调试nfs环境配置+运行hello程序
20210314+imx6ull开发板nfs环境配置1.设置git邮箱和用户名wang@wang-virtual-machine:~$ git config --global user.name "snaking616"wang@wang-virtual-machine:~$ git config --global user.email "snaking616@163.com"wang@wang-virtual-machine:~$ git config --listuser.name=snak
2021-03-19 21:52:16
547
1
原创 Android应用开发学习记录
1. 视频链接:Android开发从入门到精通(项目案例版)https://www.bilibili.com/video/av22836860/?p=2代码源文件以及视频 链接:https://pan.baidu.com/s/1apBYmQaDUA7WCbbU1BplpA密码:0r63备用链接:https://pan.baidu.com/s/16-cUsxPzWl75aGL3Ft...
2020-03-02 21:16:31
665
原创 25_ioremap控制GPIO寄存器
1. GPL2寄存器1.1 官方手册查询(1)GPL2CON: 0x11000100GPL2CON共32bit,每个IO脚的配置由4bit数据控制。GPL2(0)对应的控制位为bit0~bit3,设置为输出时需要使bit0=1,bit1=bit2=bit3=0。(2)GPL2DAT:0x11000104GPL2DAT共8bit,控制的bit0的值,即可完成GPL2(0)...
2020-02-28 05:06:56
1280
原创 24_GPIO读
itop4412学习记录本章的目的:掌握gpio的申请、配置、取值和释放。(1)gpio申请:gpio_request(2)gpio配置-设置为输入:s3c_gpio_cfgpin(EXYNOS4_GPC0(3),S3C_GPIO_INPUT);(3)gpio配置-设置为非上下拉:s3c_gpio_setpull(EXYNOS4_GPC0(3),S3C_GPIO_PU...
2020-02-26 03:12:36
530
原创 23_proc文件系统
Linux 系统上的/proc 目录是一种文件系统,即 proc 文件系统。与其它常见的文件系统不同的是,/proc 是一种伪文件系统(也即虚拟文件系统) ,存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。基于/proc 文件系统如上所述的特殊性,其内的文件也常被称作虚...
2020-02-25 23:26:01
358
原创 22_字符类GPIO
itop4412学习记录_网络_瓜儿不甜的博客-CSDN博客本章实际上是对第14章LED驱动的巩固,14章链接如下:14 LED驱动_瓜儿不甜的博客-CSDN博客 1. 主要知识点(1)GPIO头文件#include <linux/gpio.h>/*Linux中申请GPIO的头文件位置:include/linux/gpio.hgpio_request...
2020-02-24 16:41:15
304
原创 21-字符驱动
itop4412学习记录_网络_瓜儿不甜的博客-CSDN博客 1. 本章知识点学习结构体file_operations的结构与成员函数的赋值:(1)所在目录file_operations结构所在头文件目录:include/linux/fs.h,如何引用:#include <linux/fs.h>(2)常用函数有• int (*open) (struct ...
2020-02-24 00:44:37
188
原创 20_给字符设备添加设备节点
本章目标:在第19章的基础上,给cdev字符类设备添加设备节点,再编写应用程序访问设备节点。1. 代码设计思路1.1 字符设备驱动设计流程(1)模块内部新建class类型结构体变量,使用class_creat来完成初始化:static struct class *my_class;my_class = class_create(THIS_MODULE,DEVICE_NAME);(...
2020-02-19 19:34:10
546
1
原创 19_注册字符类设备
本章的目标:给自定义的reg_dev类型结构体my_devices分配内存空间,需要分配内存的具体单元有:(1)字符设备结构体成员变量char_dev;(2) 长度大小为size的字符缓存区*data。struct reg_dev{ char *data; unsigned long size; struct cdev char_dev;};struct reg_dev...
2020-02-17 23:11:15
526
原创 17-18_静态和动态申请字符类设备号
1. 相关头文件与函数(1)头文件字符设备函数在文件“include/linux/fs.h”中内核提供了三个函数来注册一组字符设备编号,这三个函数分别是– register_chrdev_region()– alloc_chrdev_region()– register_chrdev()• register_chrdev_region()是提前知道设备的主次设备号,再去申请设备号...
2020-02-16 01:10:48
349
原创 16_驱动模块传参数
1. 相关头文件与函数内核模块传参的头文件:“include/linux/moduleparam.h”(1)module_param用来传单个参数module_param(name,type,perm)– name:模块参数的名称– type: 模块参数的数据类型(支持int long short uint ulong ushort类型)– perm: 模块参数的访问权限(S_I...
2020-02-15 23:44:04
212
原创 15_LED驱动二
本章的主要目的是,对4412的32组IO口进行相同的配置操作,配合LED灯的状态和 万用表电压来检测IO口的好坏。1. 32组IO口信息将32组IO的虚拟地址宏进行整理如下:static int led_gpios[] = { EXYNOS4_GPL2(0),EXYNOS4_GPK1(1), EXYNOS4_GPD0(0), EXYNOS4_GPX1(0),EXYNOS...
2020-02-15 22:58:56
336
原创 14 LED驱动
1. iTOP4412 LED硬件原理LED2的控制脚为KP_COL0,对应SOC GPL2_0,对应虚拟地址宏为:EXYNOS4_GPL2(0)LED3的控制脚为VDD50_EN,对应GPK1_1,对应虚拟地址宏为:EXYNOS4_GPK1(1)2.LED管脚的调用、赋值以及配置//(1)驱动模块所需头文件#include <linux/init.h>#i...
2020-02-15 21:23:40
803
1
原创 13_GPIO初始化
这两期视频教程的目的• 让大家能够接受或者理解下面的内容– 对宏定义EXYNOS4_GPL2(0)的操作就是对4412芯片管脚AC21寄存器的操作。• 上层程序员(包括驱动工程师)不用关心物理地址和虚拟地址具体是多少,只需要对一组宏定义操作,就是对4412内部寄存器操作。1.GPIO的初始化1.1 查看模块gpioexynos4在内核源码目录下使用命令“ls drivers...
2020-02-14 17:09:40
1051
原创 win10家庭版如何访问samba服务
1. 安装samba服务环境【Linux】Samba服务器超详细安装、配置(附带各种问题解决方式)_Yngz_Miao的博客-CSDN博客https://blog.csdn.net/qq_38410730/article/details/805009202. 解决win10 home basic 无smb访问权限的问题(1)win10家庭版系统找不到组策略gpedit.msc的解决方...
2020-02-12 17:57:36
4632
原创 09_编写简单的应用程序调用驱动
09_编写简单的应用程序调用驱动9.1目标•编写简单应用调用驱动–调用HELLO_CTL123设备节点9.2头文件•打印头文件–include<stdio.h>调用打印函数printf•应用中调用文件需要的头文件–#include<sys/types.h>基本系统数据类型。系统的基本数据类型在32编译环境中保持为...
2020-02-04 21:46:14
296
原创 08_生成设备节点
08_生成设备节点8.1申明•Linux到2.6版本的时候,改动巨大,网上有些资料是针对以前的版本的,大家看到老版本相关的资料,直接跳过即可。•现在2.6版本以前的基本都废弃了,不用管了,学了也没有。学习要“以始为终”,学了之后是为了在实际工作中应用的,那么工作中已经用不到的知识就不要浪费时间了。8.2杂项设备(1)为什么用杂项设备•杂项设备可以说是对一部分字...
2020-02-04 21:41:55
250
原创 07_驱动注册
07_驱动注册7.1驱动注册(1)头文件•驱动注册使用结构体platform_driver,该结构体在头文件“viminclude/linux/platform_device.h”中•驱动注册platform_driver_register,驱动卸载函数platform_driver_unregister也在这个头文件中–这两个函数的参数都只有结构体platform_...
2020-02-04 21:36:55
291
原创 06_设备注册
06_设备注册6.1注册设备•注册设备使用结构体platform_device,该结构体在头文件“viminclude/linux/platform_device.h”中。头文件中也有注册设备和卸载设备的函数,了解即可。6.2注册设备实验•操作过程–注册设备。将设备结构体放到平台文件中,会自动注册设备,不用去调用注册设备的函数。编辑/home/topee...
2020-02-04 21:25:42
271
原创 05_总线_设备_驱动注册流程
05_总线_设备_驱动注册流程5.1Linux总线–查看总线的命令#ls/sys/bus/[root@iTOP-4412]#ls/sys/bus/hidmdio_busmmcscsiseriousbi2cmediaplatformsdios...
2020-02-04 21:23:46
339
原创 04_Makefile编译
04_Makefile编译4.1编译器路径设置•拿到源码后一般需要设置一下编译器路径,在源码目录Makefile文件中可以设置编译路径“CROSS_COMPILE”•前面编译环境搭建的时候,解压arm-2009q3的目录和这里对应4.2Makefile编译文件(1)强制编译•强制编译–源码开发者强制要求编译进内核的文件•打开drivers/Make...
2020-02-04 21:21:54
399
原创 03_Menuconfig_Kconfig
3.1Menuconfig的操作•Linux编译器通过.config文件确认哪些代码编译进内核,哪些被裁减掉•menuconfig是生成.config的一个工具•在Linux发展过程中,配置内核可以使用一下命令:–#makeconfig(基于文本的最为传统的配置界面,不推荐使用)–#makemenuconfig(基于文本菜单的配置界面)–#makexco...
2020-02-04 21:16:56
314
原创 02_DriverModule
2.1最简Linux驱动(1)最简Linux驱动——必备的头文件•Linux头文件位置–类似#include<linux/module.h>的头文件,它们是在Linux源码目录下的include/linux/module.h•#include<linux/module.h>头文件–所有的Linux代码必须遵循GPL协议,如果不...
2020-02-04 21:10:56
328
原创 01_内核开发基础
01_内核开发基础1.1Linux体系结构Linux体系结构由用户空间和内核空间构成,为什么Linux体系要分为用户空间和内核空间?•从程序员的角度分析–将linux底层和应用分开,做应用的做应用,做底层的做底层,各干各的。经济学的原理是,分工产生效率。•从安全性的角度分析,为了保护内核。现代CPU通常都实现了不同的工作模式。以ARM为例:A...
2020-02-04 21:01:41
253
转载 静态库和动态库的制作
一、什么叫做库:库:二进制的程序,能被操作系统载入内存中执行二、Linux下的库有两种:静态库和共享库(动态库),二者的不同点在于代码载入的时刻不同。A、静态库在程序编译的时候并会被连接到目标代码中,程序运行时将不再需要该静态库,因此体积较大B、动态库在程序编译的时候并不会被连接到目标代码中,而是在程序运行时被载入,因此程序运行时还需要动态库存在,因此目标代码体积小。1、静态库...
2019-11-27 22:02:26
195
Cy7c68013a-USB测试工具v1.5
2019-03-16
Altium Designer实战攻略与高速PCB设计PCB工程实例
2019-03-16
Cy7c68013a-USB测试工具v1.4.1
2019-03-02
易津USB开发板学习手册
2019-01-03
Cy7c68013a-USB测试工具v1.4
2018-12-21
USB状态与信息检测上位机MFC工程
2018-10-25
USB应用技术开发大全-第18章-基于slaveFIFO模式数据采集
2018-10-20
Broadcom-SDK-使用介绍
2018-10-14
NIOSII那些事儿 REV7.0_完整版
2018-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人