树莓派博通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

树莓派高阶课程7:树莓派博通BCM2835芯片手册导读相关推荐

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

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

  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. MQ日常维护操作手册
  2. 面试「计算机操作系统」知识点大集合!
  3. 获取Class类对象的三种方式
  4. Pytorch cifar100离线加载二进制文件
  5. tomcat 控制台乱码 windows下
  6. 【排序算法】python 十大经典排序算法(全网最详)
  7. 倒N字形排列java_Java排序8大算法实现
  8. golang uint 减法问题
  9. Centos7下配置安装mysql5.5主从复制(一主两从)
  10. cmd命令不识别exp_Struts2 S2061 远程命令执行漏洞(CVE202017530)复现
  11. TCP Socket
  12. SpringBoot 的事务管理
  13. 中文字符集编码Unicode,gb2312,cp936,GBK,GB18030
  14. LC5软件破解用户口令
  15. Processing基础
  16. 故障恢复控制台应用指南
  17. 【火炉炼AI】机器学习055-使用LBP直方图建立人脸识别器
  18. bootstrap4笔记
  19. 如何区分光猫、路由器和交换机?
  20. 开启元宇宙新时代,VR全景,体验虚拟展厅

热门文章

  1. SAP ABAP ZBA_R003 查询用户下的角色里的公司
  2. 1688搜索店铺列表 API
  3. TCP IP协议之初识
  4. GBase 8c应用场景分析
  5. 高压直流电源为什么要“接地”?如何“接地”?
  6. 《阿尔卑斯》观后感 (r10笔记第44天)
  7. word2016撤销无效解决办法
  8. 推荐大家几款提高工作效率的软件
  9. 超市用监控摄像头多大角的_小型超市如何安装监控摄像头以防止商品被偷
  10. 2021年美容师(初级)考试内容及美容师(初级)实操考试视频