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

建设的网站打开速度很慢快速开发平台对比

建设的网站打开速度很慢,快速开发平台对比,做学校网站素材图片,怎么查网站接入商驱动开发系列文章: 驱动开发(一):驱动代码的基本框架 驱动开发(二):创建字符设备驱动 驱动开发(三):内核层控制硬件层​​​​​​​ ←本文 目录…
 驱动开发系列文章:
                驱动开发(一):驱动代码的基本框架    
                驱动开发(二):创建字符设备驱动
                驱动开发(三):内核层控制硬件层​​​​​​​         ←本文

目录

驱动是如何操作寄存器的

地址映射函数

物理地址映射为虚拟地址

取消映射

实际操作流程演示


驱动是如何操作寄存器的

驱动操作寄存器可以通过以下步骤实现:

  1. 获取寄存器的地址:首先需要确定要操作的寄存器的地址。这可以通过查阅芯片的数据手册或者使用芯片提供的寄存器映射文档来获得。

  2. 设置寄存器的值:使用编程语言提供的位操作或者寄存器操作函数,将需要设置的值写入到寄存器中。可以使用位掩码来确定要设置的位或者位域。

  3. 读取寄存器的值:使用编程语言提供的位操作或者寄存器操作函数,读取寄存器的当前值。可以使用位掩码来获取特定位或者位域的值。

需要注意的是,在操作寄存器时,要确保对寄存器的访问是合法的,遵循芯片厂商的规定,避免对未定义或者只读的寄存器进行写操作。此外,还要考虑并发访问的问题,如果多个驱动同时操作同一个寄存器,可能会引发竞争条件或者数据不一致的问题,需要进行同步或者互斥操作。

以点亮一盏灯为例,控制rgb_led灯的寄存器是物理地址,但是在Linux内核启动之后,在使用地址的时候,操作的全是虚拟地址需要将物理地址转换为虚拟地址。在驱动代码中操作的虚拟地址就相当于操作的实际物理地址。

地址映射函数

物理地址映射为虚拟地址

void * ioremap(phys_addr_t offset, unsigned long size)功能:将物理地址映射成虚拟地址参数:@offset :要映射的物理地址@size   :大小(字节)返回值:成功返回虚拟地址,失败返回NULL;

取消映射

void iounmap(void  *addr)功能:取消映射参数:	@addr :虚拟地址返回值:无

实际操作流程演示

1、以S5P6818的U21引脚输出高电平熄灭LED灯为例

2、在手册芯片搜索U21引脚

 GPIOXOUT寄存器:控制高低电平

GPIOXOUTENB寄存器:输入/输出模式 对应位置1设置为输出模式

 GPIOXALTFN寄存器:功能模式寄存器(配置引脚是哪种功能),刚刚查询引脚时可以看到,功能0为GPIO,选择功能0,

 GPIOA28 (0XC001A000)----> red_base   //起始地址

*(red_base) |= 1<<28;    //操作GPIOXOUT寄存器,控制引脚电平

*(red_base+1) |= 1<<28;   //操作GPIOXOUTENB寄存器,设置为输出模式

*(red_base+9) &= ~(3<<24);  //操作GPIOXALTFN寄存器,选择GPIO功能模式

 3、根据查询到的信息编写驱动代码

#include <linux/init.h>
#include <linux/module.h>
#include <linux/printk.h>
#include <asm/io.h>#define RED 0XC001A000      //起始物理地址
unsigned int *red_base = NULL;static int __init hello_init(void)
{red_base = ioremap(RED,40); //将物理地址映射成虚拟地址if (NULL == red_base ){printk("ioremap err\n");}*(red_base) &= ~(1<<28);    //操作寄存器*(red_base+1) |= 1<<28;*(red_base+9) &= ~(3<<24);return 0;
}
static void __exit hello_exit(void)
{*(red_base) |= (1<<28);    //还原LED状态iounmap(red_base);         //取消映射
}
module_init(hello_init); //入口
module_exit(hello_exit); //出口
MODULE_LICENSE("GPL");   //许可证

http://www.yayakq.cn/news/13689/

相关文章:

  • 网站开发承包合同seo站外推广业务外包
  • 网站建设中联系我们怎么写wordpress 评论表情插件
  • 江苏水利工程建设招投标网站自己做提卡网站
  • wordpress 单本小说站网站做投票系统
  • 专业建站培训不忘初心网站建设
  • 园林效果图网站我公司网站开发技术优势
  • 美团网站开发形式定制级高端网站建设
  • 网站建设 免费视频网页代码制作基础教程
  • 代理行业门户网站做网站一般做几个尺寸
  • 北京网站制作人才汽车之家网站系统是什么做的
  • 专业商城网站建设公司阿里云服务器创建网站
  • 怎么用云校建设学校网站wordpress 禁用插件
  • 网站备案 修改wordpress保存的字体
  • 定制网站开发是什么会员管理系统多少钱一套
  • 手机怎么查看网站代码实现的大兴网站制作
  • 利用git做网站备份天眼查在线查询
  • 哈尔滨网站建设有哪些网站制作费计入哪个科目
  • 深圳坂田网站建设wordpress树形结构
  • 企业怎么建设网站十大传媒公司排名
  • 海口网站建设哪家好外贸公司用的采购储运财务软件
  • 北京塞车网站建设软件著作权怎么写
  • 安徽省建设工程信息网官方网站wordpress绑定域名
  • 做直播网站用什么程序高质量外链平台
  • 广州定制型网站建设做网站前台用什么软件
  • 林州网站建设哪家专业江永网站建设
  • 百度网站安全在线检测免费建设视频网站
  • 河南网站备案地址网站优化 书
  • 网站后台数据库下载小程序获取wordpress背景音乐
  • 做关于时尚网站的目的小广告胶用什么可以快速清除
  • 一米八效果图网站一流的苏州网站建设