(122条消息) 树莓派高阶课程7:树莓派博通BCM2835芯片手册导读_哒宰的自我修养的博客-CSDN博客
博通BCM2835芯片手册导读

驱动的两大利器:

电路图:通过电路图找到寄存器
芯片手册:进行编写

1.树莓派寄存器的介绍:

GPFSEL0 GPIO Function Select 0: //功能选择 输入/输出
GPSET0 GPIO Pin Output Set 0 : //输出0GPSET1 GPIO Pin Output Set 1 : //输出10 = No effect1 = Set GPIO pin nGPCLR0 GPIO Pin Output Clear 0: //清零0 = No effect1 = Clear GPIO pin nGPCLR1 GPIO Pin Output Clear 1 ://清1

每个寄存器都是32位的:


例如:我们把引脚4配置为输出引脚
FSEL4 14-12 001 我们把4引脚的14-12配置成001 GPIO Pin 4 is an output

注意:我们配置的底层引脚对应得是BCM
寄存器第0组位FESL0–9
寄存器第1组位FSEL10–19


具体的引脚也可通过官方手册查找:

树莓派引脚

2.寄存器的地址问题:

我们在编写驱动程序的时候,IO空间的起始地址是0x3f000000,加上GPIO的偏移量0x2000000,所以GPIO的物理地址应该是0x3f200000开始的,然后在这个基础上进行Linux系统的MMU内存虚拟化管理,映射到虚拟地址上。

该图的尾部偏移是对的根据GPIO的物理地址0x3f200000可以知道:
GPFSEL0 0x3f200000
GPSET0 0x3f20001c
GPCLR0 0x3f200028

这里我们得到的是物理地址是不可操作的,我们需要转化成虚拟地址,通过函数:

void __iomem * __ioremap(unsigned long phys_addr, size_t size, unsigned long flags);ioremap宏定义在asm/io.h内:#define ioremap(cookie,size)           __ioremap(cookie,size,0)

参数:
phys_addr:要映射的起始的IO地址
size:要映射的空间的大小
flags:要映射的IO空间和权限有关的标志
该函数返回映射后的内核虚拟地址(3G-4G). 接着便可以通过读写该返回的内核虚拟地址去访问之这段I/O内存资源。

附带:
BCM2835芯片手册:
BCM2835_PDF_Datasheet

树莓派——8、树莓派博通BCM2835芯片手册导读相关推荐

  1. 树莓派高阶课程7:树莓派博通BCM2835芯片手册导读

    树莓派博通BCM2835芯片手册导读 驱动的两大利器: 电路图:通过电路图找到寄存器 芯片手册:进行编写 1.树莓派寄存器的介绍: GPFSEL0 GPIO Function Select 0: // ...

  2. 树莓派博通BCM2835芯片手册导读及io口驱动代码的实现

    树莓派博通BCM2835芯片手册导读及io口驱动代码的实现 树莓派寄存器的介绍 寄存器地址问题 驱动代码的实现 在linux中生成树莓派所需要的的程序及实现现象 一.树莓派寄存器的介绍 GPFSEL0 ...

  3. 11.树莓派博通BCM2835芯片手册导读与IO口驱动代码调试和测试

    11.树莓派博通BCM2835芯片手册导读与IO口驱动代码调试和测试 硬件地址的相关概念 总线地址 32位的操作系统 ,cpu最多只能访问2^32bit,即只能访问4G的内存 64位的操作系统 ,cp ...

  4. 树莓派高级开发之树莓派博通BCM2835芯片手册导读与及“相关IO口驱动代码的编写”

    首先我们要知道,驱动的两大利器:电路图(通过电路图去寻找寄存器)和芯片手册 一.寄存器的介绍 芯片手册第六章的89页,GPIO有41个寄存器,所有访问都是32位的.Description是寄存器的功能 ...

  5. 树莓派博通BCM2835芯片手册导读

    驱动两大利器︰电路图(通过电路图找寄存器)和芯片手册. 寄存器 芯片手册第六章P89∶ 字段名 描述 用法 GPFSEL0 GPIO Function select 0,功能选择输出/输入 以引脚9举 ...

  6. 树莓派学习笔记(十五)博通BCM2835芯片手册导读

    树莓派3b的CPU型号为:BCM2835(ARM-cotexA53架构) CPU型号为2440.2410(ARM9架构) 编写驱动需要电路图(作用通过电路图找到寄存器).芯片手册 树莓派官网:http ...

  7. 树莓派学习——博通BCM2835芯片手册导读、IO口驱动代码调试和测试学习

    一.树莓派寄存器介绍: GPFSEL0 GPIO Function Select 0: 功能选择 输入/输出 GPSET0 GPIO Pin Output Set 0 : 输出0 GPSET1 GPI ...

  8. 基于博通bcm2835芯片手册进行简单的树莓派引脚驱动

    目录 1.配置寄存器 2.设置寄存器的地址 3.编写驱动代码 4.编写应用层代码 5.编译 6.测试 1.配置寄存器 我们要进行树莓派引脚的驱动就要对树莓派的引脚进行一些配置,比如我想把树莓派的某个 ...

  9. 树莓派 博通BCM2835芯片手册

    手册提取链接 链接:https://pan.baidu.com/s/1fdmIBNn1Pr1j3-ercNhKJg 提取码:8y1b 驱动的两大利器: 1.电路图:通过电路图找到寄存器 2.芯片手册 ...

最新文章

  1. 从思维导图学习操作系统(二)
  2. 省带宽、耗电小,腾讯游戏学院专家解析手游渲染架构
  3. python实现解释器_Python 解释器初探
  4. C语言作业不足之处,C语言和汇编语言的优缺点分析-控制器/处理器-与非网
  5. y电容如何选型_高压并联补偿电容器基础及运行管理
  6. MYSQL统计行数时到底应该怎么COUNT
  7. 辐射避难所买了东西显示服务器异常,辐射避难所常见问题汇总 专治疑难杂症...
  8. SDN核心技术与内容
  9. vuetify-icon图标显示不正常
  10. Eviction Kill POD选择分析
  11. 47名应届生毕业生,骗领49万杭州人才补贴!检察机关建议从宽处理
  12. e.Row.RowType == DataControlRowType.DataRow诠释(实例解释)转自孤舟济海,云卷云舒
  13. 基于ppg和fft神经网络的光学血压估计【翻译】
  14. angular的传值,子传父,父传子
  15. 硬件实施 关于基恩士SR2000电源线的接法
  16. php7.4配置文件,Centos8中php7.4安装,附配置文件及常用命令
  17. [JVM]了断局: 堆外内存无法 [ -XX:MaxDirectMemorySize ] 限制
  18. MyBatis实现数据的增删查改
  19. 2021年煤气考试报名及煤气考试APP
  20. 有关兰州IOC项目 对接华为北向IOT-消息订阅模块的Demo编写以及验证梳理(陈晓阳)

热门文章

  1. 苹果新专利:紧急情况下可用指纹或特定输入操作悄悄呼救
  2. 三种App软件开发模式:自建、外包、免编程自制,哪一种适合你?
  3. 重磅 | 揭秘IARPA项目:解码大脑算法或将彻底改变机器学习
  4. html段落间距怎么缩小,WPS怎样缩小段落间距
  5. C#输入分数自动成绩评级
  6. vue项目中,js根据文件名后缀,判断文件图片、视频、文档、pdf等类型的方法
  7. pythonturtle画丘比特之箭_python 使用 turtle 画双心(丘比特之箭)
  8. vue调用本地摄像头实现拍照
  9. 认真阅读完这篇文章熟练掌握关于IDEA断点调试操作(图文详解)
  10. LFSR和PRBS是什么关系?prbs怎么产生?