![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树莓派
文章平均质量分 58
追着太阳跑1
这个作者很懒,什么都没留下…
展开
-
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 · 945 阅读 · 0 评论 -
Linux系统中copy_from_user和copy_to_user的用法
在编写linux驱动程序的时候会用到copy_to_user()和copy_from_user()这两个函数。那这两个函数的作用是什么呢?原创 2022-11-12 16:11:14 · 614 阅读 · 0 评论 -
位运算(按位与 、按位或、按位异或、取反、左移右移)
(2)进制表示:2进制用0b表示8进制用0o表示10进制用0d表示16进制用0x表示原创 2022-11-12 16:08:03 · 540 阅读 · 0 评论 -
树莓派博通BCM2835芯片手册导读
SET{n}字段定义,分别对GPIO引脚进行设置,将“0”写入字段没有作用。然而,如果引脚随后被定义为输出,那么位将被设置根据上次的设置/清除操作。如果的在输入(默认),然后在CLR{n}字段的值是忽略了。然而,如果引脚随后被定义为输出,那么位将被定义为输出根据上次的设置/清除操作进行设置。表示GPIOn,下图给出第九个引脚的功能选择示例,对寄存器的29-27进行配置,进而设置相应的功能。有的芯片手册给的是物理地址,bcm2835给的是总线地址。进行IO口的驱动,所以在开发手册中找到对应的IO篇章,原创 2022-11-09 15:41:33 · 397 阅读 · 0 评论 -
微机总线地址,物理地址,虚拟地址介绍
背景:上一节写驱动为了实现I/O的操作,去实现自己的wiringpi库。接下来是硬件相关的,我们已经打通open,read的一条线路,我们能不能在open,read里面跟硬件打交道呢?原创 2022-11-05 17:41:22 · 499 阅读 · 0 评论 -
linux内核结构介绍及驱动引入
一、Linux内核结构框图二、图解linux系统架构三、驱动认知3.1 为什么要学习写驱动3.2 文件名与设备号3.3 open函数打通上层到底层硬件的详细过程四、shellshell脚本原创 2022-10-31 17:29:02 · 199 阅读 · 0 评论 -
文件系统基本知识
.什么是文件系统?文件系统(文件管理系统的方法)的种类有哪些?什么是分区?什么是文件系统目录结构?5.什么虚拟文件系统Virtual File System ?虚拟文件系统有什么作用?原创 2022-10-30 17:32:34 · 110 阅读 · 0 评论 -
树莓派Linu内核编译
1编译:j4是指定用多少电脑资源编译zImage 生成内核镜像modules 要生成驱动模块dtbs 生成配置文件2. 编译成功后,看到源码树目录多了vmlinux,失败则无此文件(如上图)成功后,目标zImage镜像arch//boot底下3. 打包zImage成树莓派可用的xxx.img将SD卡插上读卡器,如图连接到Ubuntudmesg:查看底层硬件数据。原创 2022-10-29 18:03:18 · 620 阅读 · 0 评论 -
树莓派linux源码配置相关操作
驱动代码的编写驱动代码的编译需要一个提前编译好的内核配置的最终目标会生成.config文件,该文件指导Makefile去把有用的东西组织成内核厂家配linux内核源码,比如说买了树莓派,树莓派linux内核源码第一种方式:cp 厂家.config .config第二种方式:make menuconfig 一项项配置,通常是基于厂家的config来配置第三种方式:完全自己来。原创 2022-10-29 11:11:50 · 265 阅读 · 0 评论 -
树莓派:关于linux内核源码分析
嵌入式产品:树莓派,mini2440,mini6410,nanopi,海思,RK(瑞芯微)----------------------------------------------人脸识别打卡器,智能家居主控。启动过程:电源-》fastBoot/Bootloader/ -》linux内核 -》文件系统-》虚拟机-》HOME应用程序 -》点某图标打开某app。启动过程: 电源-》BIOS -》Windows内核-》C,D盘-》程序启动(QQ)Linux是一个开源的,支持多架构多平台代码 = 非常牛逼。原创 2022-10-26 16:36:12 · 318 阅读 · 0 评论 -
为linux内核开发做准备(内核镜像,交叉编译工具的安装 超详细)
ls /mnt/hgfs/xxx可以看共享文件夹下面有啥文件。linux 选择哪个版本,需要看树莓派运行起来的版本。我们把路径选中,调出刚才的小窗口,把路径加进去。有时候共享文件打不开。然后解压另一个Linux文件夹(镜像)先把交叉编译的工具给他完整的安装起来。用之前的方法,把他下载到共享文件夹。按下shift +g 跳到最后一行。然后把树莓派的内核共享源码拿过来。然后名字最好是路径最后面的。点击这个linux,选择版本。要到这个路径下来x64的那个。然后把linux内核传进来。然后同样的方法,在传一个。原创 2022-10-25 17:55:14 · 452 阅读 · 0 评论 -
linux:安装ubuntu18-04 超级详细篇
一、Ubuntu18.04版本的安装先点击这里有一个新建的选项选择自定义按默认的来找到我们刚才下载的这个文件把他的位置放过去自己命名这个位置很重要奥,找个磁盘空间大的位置根据自己电脑配置设置最好是弄网络等着就行搭建完毕后写个代码发现上下左右不好用下载vim工具在Ubuntu中,有时候运用sudo apt-get install 安装软件时,会出现以下的情况然后接着操作如果上不了网的话1.看虚拟机-----网络适配器2.编辑---网络虚拟机。原创 2022-10-25 16:35:58 · 1112 阅读 · 0 评论 -
带wiringPi库的交叉编译如何处理
场景:远程接受文件时,必须带wiringpi库编译,所有必须要有兼容的wiringpi库,程序才能运行grep:在所有的文件当中匹配含有gcc的字段*:所有的文件nir:n显示行号;i:不区分大小写 r:递归(目录都找进去)history:查看你之前输入的指令。原创 2022-10-23 18:04:08 · 127 阅读 · 0 评论 -
树莓派 交叉编译阶段二的项目运行
场景正常编译,用file指令可以看到只能在x86电脑上运行,放在树莓派上跑不了检查下交叉编译工具版本对不对4.8.3。原创 2022-10-23 11:47:53 · 218 阅读 · 0 评论 -
树莓派 交叉编译工具链的安装
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 · 659 阅读 · 0 评论 -
树莓派连接语音模块
之前我们语音模块知道,语音模块在收到了我们的一级指令后会向串口上发送收到,接着我们再说一句二级指令,例如开灯,就会向串口上发送提示语句,我们利用中这一点,语音模块和树莓派连接起来之后,语音模块就会向树莓派的串口上发东西,这时候我们就可以来在树莓派上读写到串口的东西。之前我们进行了语音模块的验货,并且进行了二次开发,我们知道了在哪里可以进行程序的再次烧写,在这基础上,我们也学习了。语音模块:R,T,GND,5V。树莓派:T,R,GND,5V。即可执行success!原创 2022-10-20 20:31:40 · 399 阅读 · 0 评论 -
修改语音模块,重新烧写程序
参考:修改语音模块,重新烧写程序_木下 似水的博客-CSDN博客原创 2022-10-18 17:01:38 · 163 阅读 · 0 评论 -
语音模块(验货)
型号: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 · 689 阅读 · 0 评论 -
21 树莓派和电脑之间串口通讯编程
linux特性:一切皆文件(设备虽然是硬件,但在Linux当中它还是以文件形式存在)3.简单书写尝试向串口发送数据,我们简单发一个’C’ ,在cd/dev目录下ls。意要连接好USB转TTL连上电脑,之前学过的。初次使用树莓派串口编程,需要配置。然后开始编辑vi xxx .c。1.首先初始化wiringPI。当然也可以接受来自串口的数据。2.我们打开树莓派的串口。(禁用串口调式功能)原创 2022-10-13 18:52:10 · 484 阅读 · 0 评论 -
21 串口通信协议概述 (针对面试)
(全双工相当于对方可以同时互骂,半双工是A骂完之后,B才能骂)串口通信经常用在多机通信中,软件/硬件经常有模块化的思想。双方通信条件:1.语言互通。(数据格式:数据位,停止位,奇偶校验位)数据在T,R上走(全双工,半双工…原创 2022-10-13 15:41:38 · 590 阅读 · 0 评论 -
linux系统下超声波测距(树莓派)
参考:linux系统下超声波测距(树莓派)_是光哥呀的博客-CSDN博客参考:树莓派控制HC-SR04超声波模块测距(新手向+C语言向) - 月沫 - 博客园原创 2022-10-12 20:36:19 · 246 阅读 · 0 评论 -
17.实时指令控制继电器组(树莓派)
使用方法:VCC接+3vGND接负IN接口(低电平为吸合状态)原创 2022-10-11 13:47:06 · 112 阅读 · 0 评论 -
15.树莓派控制继电器
继电器工作电压是3.3V,所以树莓派的3.3V要和继电器的VCC用杜邦线接好,再接一根0V对GND的线,最后一根线挑一根树莓派上标有GPIO字样的针脚,我们这里选用GPIO.7针脚接到继电器上面。首先,输入gpio readall,就可以查看树莓派IO口的名称等等,如图。下面的代码是树莓派控制继电器的简单代码。原创 2022-10-08 22:26:01 · 323 阅读 · 0 评论 -
树莓派外设开发综述
1.树莓派在使用wiringpi库时,需要看树莓派是否安装wiringpi库,没有就安装(上方链接)gpio -v (判断是否安装了wiringpi库)2.在使用时,需要包含头文件 ,还要初始化3.gcc编译时 记住要带 -lwiringpi。原创 2022-10-08 18:55:24 · 218 阅读 · 0 评论 -
linux库动态库的生成与使用
程序升级简单,因为app里面没有库的源代码,升级之后只要库的名字不变,函数名以及参数不变,只是实现做了优化,就能加载成功。动态库的命名方式与静态库类似,前缀相同,为“lib”,后缀变为“.so”。方法1:sudo cp libxxx.so /usr/lib/ 将库拷贝到 /usr/lib/补充:sudo rm/usr/lib/libxxx.so (删掉动态库)因为在运行过程中在优先默认的usr/lib/找不到动态库。1.输入pwd获取目前路径。(百度:引入动态库,怎么指定动态库的位置)原创 2022-10-08 13:02:13 · 580 阅读 · 0 评论 -
linux库 静态库
我们很多时候不希望别人看到我们的源码,只想让别人就用一下我的功能就行,我们就要用到库。直接:主函数c文件 -l库名(去头去尾) -L 路径 -o 可执行文件名。(2)链接时完整地拷贝至可执行文件中,别多次使用就有多份冗余拷贝。(2)发布程序无需提供静态库,因为已经在APP中,移植方便。如gcc file2.c -c 生成了file2.o文件。静态函数库,是函数执行前(编译)就加到目标程序中去了。(3)更新,部署,发布较为麻烦。库名为xxx,后缀是 .a。格式: libxxx.a。xxx.a静态库文件。原创 2022-10-08 11:29:34 · 356 阅读 · 0 评论 -
linux库引入之分文件编程
例如,当需要开发一个有两个函数(function1和function2)的C程序时,传统的做法是在main.c中分别编写main函数、function1函数和function2函数,在main函数之前或开始部分声明两个功能函数,并调用。当代码量较大功能较复杂时,单一文件程序会使得文件非常巨大,代码量非常大,成千上万行的代码在一个文件中不便于修改和维护,因此需要将不同的功能模块放在不同的文件中。2.创建一个头文件file3.h,只留下函数原型,函数体去掉(需要包含在main函数的.c文件里)原创 2022-10-07 21:33:33 · 118 阅读 · 0 评论 -
树莓派和Windows通信(filezilla文件共享)
进入filezilla界面之后---------主机:树莓派的ip地址--------pi--------端口不写(可能会连不上)办法:在主机:sftp://192.--------------正常操作即可。那树莓派应该怎么办呢?由于树莓派不是一个虚拟机,没办法实现类似的共享文件夹。前面我们知道 VMare我们会用到共享文件夹。左边是windows 右边是树莓派。拿windows的文件同样如此。下载filezilla软件。拿树莓派的文件直接拖动即可。原创 2022-10-06 18:10:45 · 387 阅读 · 0 评论 -
树莓派图形xrdp界面登录
首先要让树莓派支持rdp,所有的版都是如此。然后开启电脑的远程桌面连接。输入树莓派的ip地址即可。开始下载 安装rdp。原创 2022-10-06 17:45:42 · 105 阅读 · 0 评论 -
将VIM更新到好用的版本
原文链接:https://blog.csdn.net/yanshimufeng/article/details/115789034。sudo apt-get install vim(正常下载并安装)我们sudo apt-get update(源换完要更新一下)auto mode 即可。把这里默认的源注释掉,换成我们国内的源。我们来操作:(用网络登录的方式)更新完之后就可以正常下载vim了。原创 2022-10-05 22:46:48 · 487 阅读 · 0 评论 -
SSH方式(网络方式)登录树莓派
的方式登录树莓派,可是这样很麻烦,我们可以用别的方式,比如网络接入吗,是可以的,我们可以开启SSH服务。采用ssh网络连接--------第一个空填树莓派的ip地址。原创 2022-10-05 22:03:32 · 313 阅读 · 0 评论 -
树莓派网络连接完整配置步骤
树莓派网络连接完整配置步骤原创 2022-10-05 21:33:13 · 1756 阅读 · 0 评论 -
树莓派刷机,串口登录
树莓派刷机,串口登录原创 2022-10-05 11:22:44 · 390 阅读 · 0 评论