当前位置: 首页 > news >正文

网站运营这么做简历模板免费可编辑

网站运营这么做,简历模板免费可编辑,建设工程施工合同示范文本2017版,wordpress轮播图代码目录CPU型号确定寄存器的地址问题GPIO寄存器GPFESLnGPSETnGPCLRn重要函数mmap函数munmap函数点灯程序平台#xff1a;树莓派3B 版本#xff1a; 2021-05-07-raspios-buster-armhf CPU型号确定 由 pinout命令可知#xff0c;所用的板子Soc型号为BCM2837 寄存器的地址问题… 目录CPU型号确定寄存器的地址问题GPIO寄存器GPFESLnGPSETnGPCLRn重要函数mmap函数munmap函数点灯程序平台树莓派3B 版本 2021-05-07-raspios-buster-armhf CPU型号确定 由 pinout命令可知所用的板子Soc型号为BCM2837 寄存器的地址问题 本节内容修改自虚拟地址/物理地址——virtual address(memory)/physical address: 树莓派 mmap example —— 风竹夜 由于官方只公开了BCM2835的芯片手册(Raspberry Pi Documentation)而我们用的板子Soc为BCM2837因此由手册得到的地址是不准确的。但两个芯片外设上区别不大手册仍有一定的参考价值。 手册第5页描绘了BCM2835的地址映射情况 其中要区分文档中的三个地址Bus Address、Physical Address、Virtual Address 在树莓派中借助ARM内部的MMUCPU外设物理地址映射成了虚拟地址。 这里的 Virtual Address 和 Physical Address 是通过 ARM MMU 来实现映射的先不管cache等其他因素。主板上外设的实际地址是 Physical Address所以要访问 GPIO 寄存器也就是访问 Physical Address 中从 0x20000000 开始的某处的地址 那么就需要在代码中访问 Virtual Address 中从 0xF2000000 开始的某处的地址由于该虚拟地址在高地址内存因此只能在内核的代码中才能够访问到。 而在树莓派3B中我们可以通过 sudo cat /proc/iomem命令获取物理地址分配情况 由图可知树莓派3B GPIO 的物理起始地址为0x3f200000 GPIO寄存器 从手册第89页开始详细地描述了GPIO外设。 第90-91页的表格标明了和GPIO相关的寄存器的地址。 其中GPFESLn选择引脚功能、GPSETn设置引脚输出高电平和GPCLRn设置引脚输出低电平是控制引脚输出电平需要用到的寄存器。 虽然树莓派3B的Soc换成了BCM2837GPIO外设的基地址有变但手册上的偏移地址还是有参考价值的。 其中GPFESL0的偏移地址为0x00GPSET0的偏移地址为0x1CGPCLRn的偏移地址为0x28 GPFESLn 由手册知 GPFESL0控制GPIO Pin 0~9 GPFESL1控制GPIO Pin 10~19 GPFESL2控制GPIO Pin 20~29 GPFESL3控制GPIO Pin 30~39 GPFESL4控制GPIO Pin 40~49 GPFESL5控制GPIO Pin 50~59 3位为间隔000 为输入001为输出 GPSETn 由手册知 GPSET0控制GPIO pin 0~31 GPSET1控制GPIO pin 32~53 GPCLRn 由手册知 GPCLR0控制GPIO pin 0~31 GPCLR1控制GPIO pin 32~53 重要函数 mmap函数 mmap将一个文件或者其它对象映射进内存。mmap操作提供了一种机制让用户程序直接访问设备内存这种机制相比较在用户空间和内核空间互相拷贝数据效率更高。 void* mmap(void* start,size_t length,int prot,int flags,int fd,off_t offset); start映射区的开始地址设置为0时表示由系统决定映射区的起始地址。 length映射区的长度。//长度单位是 以字节为单位不足一内存页按一内存页处理。 prot期望的内存保护标志不能与文件的打开模式冲突。 PROT_EXEC //页内容可以被执行 PROT_READ //页内容可以被读取 PROT_WRITE //页可以被写入 PROT_NONE //页不可访问 flags指定映射对象的类型映射选项和映射页是否可以共享。 fd有效的文件描述词。一般是由open()函数返回。 offset被映射对象内容的起点。 返回值成功被映射区的指针。失败MAP_FAILED[其值为(void *)-1]。 munmap函数 munmap()用来取消参数start所指的映射内存起始地址 int munmap(void *start,size_t length); start映射区的开始地址 length欲取消的内存大小 返回值成功0失败-1。 点灯程序 在合适的地方编写main.c文件 nano main.c#include stdio.h #include sys/mman.h //mmap、munmap函数的定义 #include fcntl.h //open函数的定义 #include unistd.h //close函数的定义 #include stdint.h //uint8_t、uint32_t等类型的定义 #include unistd.h //sleep函数的定义#define GPIO_BASE_Physical_Address 0x3f200000#define GPFSEL0_Offs 0x00 #define GPSET0_Offs 0x1C #define GPCLR0_Offs 0x28 int main(int argc, char *argv[]) {int fd;uint8_t Pin 3;fd open(/dev/gpiomem, O_RDWR);if (fd -1) //只有root用户才能读取/dev/mem, 故本实验选择读取/dev/gpiomem以实现普通用户控制GPIO{printf(open Error!\n);return -1;}void *GPIO_BASE mmap(0, sysconf(_SC_PAGESIZE), PROT_READ | PROT_WRITE, MAP_SHARED , fd, GPIO_BASE_Physical_Address);close(fd);if(GPIO_BASE MAP_FAILED){printf(mmap Error!\n);return -1;}volatile uint32_t * GPFSEL0 (uint32_t *)(GPIO_BASE GPFSEL0_Offs);volatile uint32_t * GPSET0 (uint32_t *)(GPIO_BASE GPSET0_Offs);volatile uint32_t * GPCLR0 (uint32_t *)(GPIO_BASE GPCLR0_Offs);*GPFSEL0 (*GPFSEL0 ~((uint32_t)7 (3 * Pin))) | ((uint32_t)1) (3 * Pin); //设置Pin 3为输出模式for(uint8_t i 0; i 10; i) //反转Pin 3 i次{*GPCLR0 ((uint32_t)1) Pin; sleep(1);*GPSET0 ((uint32_t)1) Pin; sleep(1);}*GPFSEL0 *GPFSEL0 ~((uint32_t)7 (3 * Pin)); //设置Pin 3为输入模式if(munmap(GPIO_BASE, sysconf(_SC_PAGESIZE)) -1){printf(munmap Error!\n);return -1;}GPIO_BASE MAP_FAILED;GPFSEL0 MAP_FAILED;GPSET0 MAP_FAILED;GPCLR0 MAP_FAILED;return 0; }其中sysconf(_SC_PAGESIZE)为页的长度相关知识见yaaangmin大佬的视频深入理解计算机系统20内存 - 多级页表、虚拟地址、物理地址 编写Makefile文件 nano Makefile注意Makefile里的缩进为Tab而不是空格 main: main.ogcc -o main main.o main.o: main.cgcc -c main.c clean:rm *.orm main clear:rm *.orm main编译并测试 make./main可见Pin 3 脚所连LED闪烁(Pin 3脚已事先接好LED和限流电阻下拉至GND) 此编号对应 gpio readall命令下的BCM编号
http://wiki.neutronadmin.com/news/435564/

相关文章:

  • 网站所有权查询手机网站关键词优化
  • 行政事业单位网站建设建议做网站用哪个软件写比较好
  • 河北建设厅官网站首页我们的社区手机在线观看
  • 建设网站的基本流程wordpress如何开启ssl
  • 怎么自己创建一个网站php网站开发实例教程 传智播客
  • 永州市规划建设局网站才做的网站怎么搜不到
  • 020网站设计网站开发职务
  • 江西手机网站建设wordpress主页编辑
  • 网站建设卩金手指科杰十四网站开发怎么自学
  • 网站建设费用怎么核算国内外高校门户网站建设的成功经验与特色分析
  • 成都全网营销型网站如何建立微网站详细
  • 建设网站需要哪些步骤建设网站英文翻译
  • 专门做外贸机械的网站最新的网络营销方式
  • 2021能看的网站免费的知乎旅游型网站开发
  • 新网站2个月没有收录重庆网站建站推广
  • 快速搭建网站服务器wordpress生成的html
  • 各大网站网址是多少做网站建设销售员准备什么
  • 商城网站要怎样建设添加建设银行的网站
  • 怎么做网站的网盘网站建设哪个比较好
  • 网站搭建配置lol做视频那个网站好
  • 怎么开发个人网站c2c模式有哪些优势
  • 河北 石家庄 网站建设营销外包团队有哪些
  • 有哪些推广网站优秀的软文广告案例
  • 如何创建一个国外免费网站移动应用开发大专出来做什么
  • 做网站的维护成本上海快速优化排名
  • 单页面网站推广qq营销网站源码
  • 锡盟建设局网站潍坊专业舞蹈学校
  • 响应式网站模板html5建筑公司网站页面图片
  • 建设网站排名网页生成pdf
  • 福州网络营销网站网站信息抽查评估