- 博客(87)
- 收藏
- 关注
原创 linux中级——libcurl库访问百度
在linux底下用c语言做http编程方法,依赖libcurl。libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证。libcurl的官网、库下载。这种库使用的时候就像使用wiringPi库一样,编写完代码需要链接这个库,所以要先下载这个库。
2022-12-24 19:12:04 841
原创 TCP三次握手、四次挥手、socket,tcp,http三者之间的区别和原理
TCP三次握手、四次挥手、socket,tcp,http三者之间的区别和原理
2022-12-18 21:03:48 160
原创 arm处理器IO口驱动代码编写与测试(bcm2835)
我们在编写驱动程序的时候,IO空间的起始地址是0x3f000000,加上GPIO的偏移量0x2000000,所以GPIO的物理地址应该是从0x3f200000开始的,然后在这个基础上进行Linux系统的MMU内存虚拟化管理,映射到虚拟地址上。特别注意,BCM2708 和BCM2709 IO起始地址不同,BCM2708是0x20000000,BCM2709是0x3f000000,这是造成大部分人驱动出现“段错误”的原因。树莓派3B的CPU为BCM2709。
2022-11-12 16:28:55 928
原创 Linux系统中copy_from_user和copy_to_user的用法
在编写linux驱动程序的时候会用到copy_to_user()和copy_from_user()这两个函数。那这两个函数的作用是什么呢?
2022-11-12 16:11:14 606
原创 树莓派博通BCM2835芯片手册导读
SET{n}字段定义,分别对GPIO引脚进行设置,将“0”写入字段没有作用。然而,如果引脚随后被定义为输出,那么位将被设置根据上次的设置/清除操作。如果的在输入(默认),然后在CLR{n}字段的值是忽略了。然而,如果引脚随后被定义为输出,那么位将被定义为输出根据上次的设置/清除操作进行设置。表示GPIOn,下图给出第九个引脚的功能选择示例,对寄存器的29-27进行配置,进而设置相应的功能。有的芯片手册给的是物理地址,bcm2835给的是总线地址。进行IO口的驱动,所以在开发手册中找到对应的IO篇章,
2022-11-09 15:41:33 387
原创 微机总线地址,物理地址,虚拟地址介绍
背景:上一节写驱动为了实现I/O的操作,去实现自己的wiringpi库。接下来是硬件相关的,我们已经打通open,read的一条线路,我们能不能在open,read里面跟硬件打交道呢?
2022-11-05 17:41:22 487
原创 Linux驱动(驱动程序开发、驱动框架代码编译和测试)
驱动程序开发步骤Linux 内核就是由各种驱动组成的,内核源码中有大约 85%是各种驱动程序的代码。内核中驱动程序种类齐全,可以在同类驱动的基础上进行修改以符合具体单板。编写驱动程序的难点并不是硬件的具体操作,而是弄清楚现有驱动程序的框架,在这个框架中加入这个硬件。一般来说,编写一个 linux 设备驱动程序的大致流程如下:
2022-11-03 18:11:45 710
原创 linux内核结构介绍及驱动引入
一、Linux内核结构框图二、图解linux系统架构三、驱动认知3.1 为什么要学习写驱动3.2 文件名与设备号3.3 open函数打通上层到底层硬件的详细过程四、shellshell脚本
2022-10-31 17:29:02 194
原创 文件系统基本知识
.什么是文件系统?文件系统(文件管理系统的方法)的种类有哪些?什么是分区?什么是文件系统目录结构?5.什么虚拟文件系统Virtual File System ?虚拟文件系统有什么作用?
2022-10-30 17:32:34 109
原创 树莓派Linu内核编译
1编译:j4是指定用多少电脑资源编译zImage 生成内核镜像modules 要生成驱动模块dtbs 生成配置文件2. 编译成功后,看到源码树目录多了vmlinux,失败则无此文件(如上图)成功后,目标zImage镜像arch//boot底下3. 打包zImage成树莓派可用的xxx.img将SD卡插上读卡器,如图连接到Ubuntudmesg:查看底层硬件数据。
2022-10-29 18:03:18 608
原创 树莓派linux源码配置相关操作
驱动代码的编写驱动代码的编译需要一个提前编译好的内核配置的最终目标会生成.config文件,该文件指导Makefile去把有用的东西组织成内核厂家配linux内核源码,比如说买了树莓派,树莓派linux内核源码第一种方式:cp 厂家.config .config第二种方式:make menuconfig 一项项配置,通常是基于厂家的config来配置第三种方式:完全自己来。
2022-10-29 11:11:50 262
原创 树莓派:关于linux内核源码分析
嵌入式产品:树莓派,mini2440,mini6410,nanopi,海思,RK(瑞芯微)----------------------------------------------人脸识别打卡器,智能家居主控。启动过程:电源-》fastBoot/Bootloader/ -》linux内核 -》文件系统-》虚拟机-》HOME应用程序 -》点某图标打开某app。启动过程: 电源-》BIOS -》Windows内核-》C,D盘-》程序启动(QQ)Linux是一个开源的,支持多架构多平台代码 = 非常牛逼。
2022-10-26 16:36:12 312
原创 为linux内核开发做准备(内核镜像,交叉编译工具的安装 超详细)
ls /mnt/hgfs/xxx可以看共享文件夹下面有啥文件。linux 选择哪个版本,需要看树莓派运行起来的版本。我们把路径选中,调出刚才的小窗口,把路径加进去。有时候共享文件打不开。然后解压另一个Linux文件夹(镜像)先把交叉编译的工具给他完整的安装起来。用之前的方法,把他下载到共享文件夹。按下shift +g 跳到最后一行。然后把树莓派的内核共享源码拿过来。然后名字最好是路径最后面的。点击这个linux,选择版本。要到这个路径下来x64的那个。然后把linux内核传进来。然后同样的方法,在传一个。
2022-10-25 17:55:14 450
原创 Ubuntu中安装vim、gcc以及ifconfig
Ubuntu中安装vim、gcc以及ifconfig_回头我找你的博客-CSDN博客_ubuntu安装ifconfig
2022-10-25 16:37:46 437
原创 linux:安装ubuntu18-04 超级详细篇
一、Ubuntu18.04版本的安装先点击这里有一个新建的选项选择自定义按默认的来找到我们刚才下载的这个文件把他的位置放过去自己命名这个位置很重要奥,找个磁盘空间大的位置根据自己电脑配置设置最好是弄网络等着就行搭建完毕后写个代码发现上下左右不好用下载vim工具在Ubuntu中,有时候运用sudo apt-get install 安装软件时,会出现以下的情况然后接着操作如果上不了网的话1.看虚拟机-----网络适配器2.编辑---网络虚拟机。
2022-10-25 16:35:58 1104
原创 带wiringPi库的交叉编译如何处理
场景:远程接受文件时,必须带wiringpi库编译,所有必须要有兼容的wiringpi库,程序才能运行grep:在所有的文件当中匹配含有gcc的字段*:所有的文件nir:n显示行号;i:不区分大小写 r:递归(目录都找进去)history:查看你之前输入的指令。
2022-10-23 18:04:08 124
原创 树莓派 交叉编译阶段二的项目运行
场景正常编译,用file指令可以看到只能在x86电脑上运行,放在树莓派上跑不了检查下交叉编译工具版本对不对4.8.3。
2022-10-23 11:47:53 215
原创 树莓派 交叉编译工具链的安装
VMware的 lessonPI目录文件夹(自己新建的)arm-linux-gnueabihf-gcc-v (编译树莓派或其它平台的文件) 便于区别。2. 进入此目录-----unzip tools-master.zip (解压)前一段为echo $PATH=获得当前环境变量的值,账户前面的路径。5.进入bin ls(一堆绿色的为可执行文件,蓝色为假)3.进入 arm---linux----gnueabihf。export PATH=临时方法配置的路径。后一段为pwd获得的路径。
2022-10-21 17:43:21 655
原创 树莓派连接语音模块
之前我们语音模块知道,语音模块在收到了我们的一级指令后会向串口上发送收到,接着我们再说一句二级指令,例如开灯,就会向串口上发送提示语句,我们利用中这一点,语音模块和树莓派连接起来之后,语音模块就会向树莓派的串口上发东西,这时候我们就可以来在树莓派上读写到串口的东西。之前我们进行了语音模块的验货,并且进行了二次开发,我们知道了在哪里可以进行程序的再次烧写,在这基础上,我们也学习了。语音模块:R,T,GND,5V。树莓派:T,R,GND,5V。即可执行success!
2022-10-20 20:31:40 394
原创 语音模块(验货)
型号:YS-LDV7 名称:一体化语音识别模块 规格:43*29.7MM 供电电压:5V (内部工作电压 3.3V) 待机电流:30MA 识别时电流:45MA IO 口输出:高电平为 3.3V 通信方式:串口通信(5V TTL 电平,不可直接接 RS232、RS485) 单片机参数:型号–>STC11L08XE 、flash–>8k、SRAM–>1280、eeprom–>32k 识别词条个数:50 句 工作温度:-20 至 60℃。拿到了我们语音模块,怎么进行验货呢?然后连接语音模块和USB转TTL。
2022-10-18 17:00:07 676
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人