驱动两大利器︰电路图(通过电路图找寄存器)和芯片手册。

寄存器

芯片手册第六章P89∶

字段名 描述 用法
GPFSEL0 GPIO Function select 0,功能选择输出/输入 以引脚9举例:000 = GPIO Pin 9 is an input
001 = GPIO Pin 9 is an output
GPSET0 GPIO Pin output Set 0,输出0 0 = No effect
1 = Set GPIO pin n
GPSET1 GPIO Pin output set 1,输出1 0 = No effect
1 = Set GPIO pin n
GPCLR0 GPIO Pin output clear 0,清0 0 = No effect
1 = Clear GPIO pin n

文档中的功能说的非常清楚了,引脚输出是001,输入是000等等,我们的寄存器都是分组的,寄存器第0组是FESL0–9,寄存器第1组是FESL0–9…如图所示。

需要注意的是,我们寄存器对应的引脚是BCM,而不是wiringPi的引脚,如图所示。

更多的引脚详细介绍可以去树莓派官网查看

https://pinout.xyz/pinout/pin7_gpio4

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

特别注意,BCM2708 和BCM2709 IO起始地址不同,BCM2708是0x20000000,BCM2709是0x3f000000,这是造成大部分人驱动出现“段错误”的原因。树莓派3B的CPU为BCM2709。

通过对首图的尾部偏移,那么GPIO的物理地址0x3f200000的偏移也应如此。
GPFSEL0 0x3f200000
GPSET0 0x3f20001c
GPCLR0 0x3f200028

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

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

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

  2. 树莓派——8、树莓派博通BCM2835芯片手册导读

    (122条消息) 树莓派高阶课程7:树莓派博通BCM2835芯片手册导读_哒宰的自我修养的博客-CSDN博客 博通BCM2835芯片手册导读 驱动的两大利器: 电路图:通过电路图找到寄存器 芯片手册: ...

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

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

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

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

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

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

  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. mysql 触发器编程_【mysql的编程专题】触发器
  2. 0xde c语言合法常量_【期初优课堂】2020“云课堂”开讲啦!第3期(C语言)
  3. iris数据_Kaggle 数据可视化课程5
  4. Delphi及C++Builder经典图书一览表(持续更新中2018.01.02)
  5. python安装的模块在pycharm中能用吗_pycharm安装python模块
  6. python模块-logging和collections以及random模块
  7. 控制台应用程序转成MFC程序错误—OcrRec.exe触发一个触点,原因可能是堆被破坏
  8. Windows Server 2003安装应用程序时,提示缺失kernel.dll文件
  9. 《完整部署 OCS-NG》
  10. 计算机硬件驱动备份,驱动备份还原软件工具
  11. 极域课堂管理系统软件如何取消控制_极域新品发布会圆满落幕,你想看的都在这里...
  12. Win10提示“无法使用内置管理员账户打开计算器”解决方案
  13. IntelliJ idea2017 安装破解
  14. onunload,onbeforeunload,load事件
  15. create connection SQLException, url: jdbc:mysqlAccess denied for user ‘CC‘@‘localhost‘ (using passwo
  16. 痞子衡嵌入式:ARM Cortex-M文件那些事(3)- 工程文件(.ewp)
  17. 都说云计算时代是开发的天下,运维都要被下岗淘汰了?可业界大神陈皓却是这样说的!...
  18. 生猛!实时把画质变成 4k 高清的神库!
  19. 系统测试报告编写规范
  20. centos8 配置 dns_centos 8 集群Linux环境搭建 - 凭栏莫听雨落

热门文章

  1. 用手机把纸质文件扫描成pdf的方法分享,不能错过哦。
  2. 微信棋牌源码虚拟机搭建Hadoop集群
  3. js 跨浏览器tab页通信
  4. 记录docker failed to initialize docker desktop is shutting down解决办法
  5. 修改Office文件的默认打开方式(含C#代码)
  6. java wav合并_java – 如何将两个wav文件合并/合并到一个wav文件中?
  7. NS3_Tutorial 中文版: 第一章 简介
  8. Android系统完整的启动流程
  9. 种基于局域网的点对点语音通信
  10. 冷笑话,笑不笑随你,哈哈!