树莓派4B 寄存器基地址查询

树莓派4B的datasheet在我看来非常混乱复杂,尤其是地址映射方面。单datasheet就有两个版本而且还自相矛盾。为了查找到确定的物理地址,使用官方提供的函数进行读取。
首先在应用层插入头文件:

#include <bcm_host.h>

可用函数有如下选择:

<1>    unsigned bcm_host_get_peripheral_address()  //读取外设物理地址
<2> unsigned bcm_host_get_peripheral_size()
<3> unsigned bcm_host_get_sdram_address()

本例要求读取外设物理地址,使用函数(1),代码如下:

#include <stdio.h>
#include <bcm_host.h>void main()
{unsigned t;t = bcm_host_get_peripheral_address();printf("baseadd = %x\n",t);
}

用下面的语句进行编译,一定要在树莓派上进行编译运行

gcc test.c -I/opt/vc/include -L/opt/vc/lib -lbcm_host -o test

生成test文件,如下图。运行test文件如下,可以看到此时树莓派4B的基地址为

baseadd=fe000000

这个很重要,是驱动开发的基础,以此为基地址相对偏移一个位置。如GPIO的设置。在这里要特别注意相对偏移量。

GPFSEL0= (volatile unsigned int *)ioremap(0xfe200000,4);
GPSET0 = (volatile unsigned int *)ioremap(0xfe20001c,4);
GPCLR0 = (volatile unsigned int *)ioremap(0xfe200028,4);

树莓派4B 寄存器基地址查询相关推荐

  1. 【STM32存储器映射-寄存器基地址-偏移】

    前言 在学习STM32的时候,我们看到很多的寄存器编程, 比方说LED灯: //GPIOB.5端口输出高电平GPIOB->ODR|=1<<5; //PB.5 输出高GPIOE-> ...

  2. ARM TTBR0TTBR1寄存器与ARM32页表复制。TTBR0TTBR1两寄存器在ARM,ARM32,ARM64linux中分页管理页表基地址的存放不同,CP15 CP2控制TTBR01附加协处理

    一,ARM TTBR0,TTBR1寄存器: 从ARMV6开始增加了TTBR1寄存器,但是在ARM32的时候,TTBR1寄存器未使用,原因如下: TTBR0和TTBR1寄存器只支持2G,1G,512M等 ...

  3. 树莓派的初步使用--ip地址查询(无屏幕、无路由器、只有一根网线和能连wifi的笔记本)

    1.安装软件 空sd卡利用balenaEtcher制作树莓派系统 2.树莓派ip地址(无屏幕.无路由器.只有一根网线和能连wifi的笔记本) 使用网线连接笔记本和树莓派主板(通电),将笔记本的无线网改 ...

  4. 树莓派4B与智能涡轮流量计通过RS485(modbus RTU协议)收发数据(一)

    目标:使用树莓派及CAN HAT扩展板读取智能涡轮流量计(RS485通讯改装,使用modbus-RTU协议)的各项测量数据. 由于是初次学习,对智能仪表以及树莓派串口通信等知识比较陌生,在此对实验过程 ...

  5. 树莓派4B修复双触摸屏触摸问题

    本文地址:https://blog.csdn.net/cbaili/article/details/124195837(拒绝搬运) 问题 (豪横)我有两块触摸屏,连接在树莓派4B上 开机后发现在一块触 ...

  6. 树莓派4B安装Ubuntu Mate20.04

    需要准备的设备: 树莓派4B(这里我选用的是8G内存版本) 键盘和鼠标(必须要有键盘,鼠标在安装好Ubuntu Mate后使用) 显示器(这里推荐使用HDMI屏幕,我使用的是https://www.w ...

  7. ARM64+树莓派4b+JLINK仿真器实验环境搭建指南

    ARM64体系结构与编程,全球原创的ARM64实验,笨叔带队,等你哟! ARM64体系结构与编程-yx音频:00:00/00:20 奔跑吧第三季视频课程实验设备清单 硬件开发平台:树莓派4B (2G或 ...

  8. 【树莓派4B】安装Ubuntu Mate20.04+ROS Noetic+使用电脑自带的xrdp和VNC进行PC端远程控制

    目录 前言 一.烧录Ubuntu Mate20.04 1.下载Ubuntu Mate 20.04 2.格式化SD卡并烧录系统 3*.打开SSH功能 二.配置Ubuntu环境 1.初次开机进行简单的配置 ...

  9. 树莓派4B 8G安装日志(1)——基础环境安装

    由于内卷严重,想带着孩子(一年级)玩玩编程,所以把树莓派又玩了起来.之前我买的是3B+现在更新到了4b,于是买了8G版本回来.下面把安装过程中的坑和琐事记录下来备忘也可为由类似需求的朋友借鉴. 一.安 ...

最新文章

  1. 我的Android进阶之旅------Android嵌入图像InsetDrawable的用法
  2. 在react-native中使用redux框架
  3. 攻防世界 ——crypto
  4. effective c++条款11扩展——关于拷贝构造函数和赋值运算符
  5. Python----面向对象---自定义元类控制类的实例化行为的应用
  6. 使用Linux进行c或c++编程
  7. 服务器红帽操作系统安装,pxe无人值守安装 红帽操作系统
  8. datetime默认当前时间_简述Python培训之time和datetime的区别
  9. Java的反射机制(Reflection)
  10. Linux系统下zookeeper的安装和配置
  11. 2019,边缘计算人在看什么书?
  12. CI框架源码解析五之钩子类文件Hooks.php
  13. mysql进销存表设计_ERP进销存-用户表 - 数据库设计 - 数据库表结构 - 果创云
  14. 用maya画凳子_maya椅子模型下载
  15. Linux之ClamAV杀毒软件YUM安装和使用
  16. wxpython绘制雷达图_Tableau可视化分析【8】解锁雷达图
  17. 浅析ERP系统--人资
  18. ECS云服务器详细配置
  19. 计算机原理(CPU+存储+OS+指令)
  20. pytorch框架--简单模型预测

热门文章

  1. 2.4 群辉驱动:多网口,系统网络只能识别两个网口 解决教程
  2. tokuDB 使用详解及其注意事项(2)
  3. 【分享干货】AD9653调试笔记
  4. 使用 ip2region 获取用户的 IP 归属地
  5. 很jiong的一天又过去了
  6. python打印神兽佛祖和美女 | Buddha Bless, No Bug !
  7. 智慧园区物业可视化大屏
  8. 入校以来现实表现三段式
  9. ECMWF-ERA和ERA5关于累积变量的下载和处理
  10. NAVIGATE领航者峰会 | 紫光云 · 服务与运营战略升级