android 如何增加gsensor驱动(MMA7660)

本文详细介绍了如何将系统中原本使用的BOSCH_BMA222传感器更换为MMA7660传感器,并通过修改Makefile、增加驱动文件、配置.config文件以及调整Kconfig文件来实现驱动的添加与调试。
系统原来用的是BOSCH_BMA222的gsensor, 现在要求换成使用MMA7660,我们来看一下怎样增加驱动和调试过程。

1. 修改Makefie

        首先,修改放置驱动的目录里的Makefile(kernel/driver/misc),添置如下语句:

  1. obj-$(CONFIG_SENSORS_MMA7660)   += mma7660.o  
obj-$(CONFIG_SENSORS_MMA7660)   += mma7660.o

2. 增加驱动文件

        把驱动文件mma7660.c添加到kernel/driver/misc下。


3. 修改.config文件,把下面两行注释掉

  1. CONFIG_BOSCH_SENSOR=y  
  2. CONFIG_BOSCH_BMA222=y  
# CONFIG_BOSCH_SENSOR=y
# CONFIG_BOSCH_BMA222=y
    再增加下面这项

  1. CONFIG_SENSORS_MMA7660=y  
CONFIG_SENSORS_MMA7660=y

    编译,显示提示:

  1. make uImage -j16  
  2. scripts/kconfig/conf -s arch/arm/Kconfig  
  3. *  
  4. * Restart config...  
  5. *  
  6. *  
  7. * Misc devices  
  8. *  
  9. Misc devices (MISC_DEVICES) [Y/n/?] y  
  10.   Analog Devices AD525x Digital Potentiometers (AD525X_DPOT) [N/m/y/?] n  
  11.   Android pmem allocator (ANDROID_PMEM) [N/y] n  
  12.   Integrated Circuits ICS932S401 (ICS932S401) [N/m/y/?] n  
  13.   Enclosure Services (ENCLOSURE_SERVICES) [N/m/y/?] n  
  14.   Kernel Debugger Core (KERNEL_DEBUGGER_CORE) [N/y/?] n  
  15.   Intersil ISL29003 ambient light sensor (ISL29003) [N/m/y/?] n  
  16.   Taos TSL2550 ambient light sensor (SENSORS_TSL2550) [N/m/y/?] n  
  17.   Dallas DS1682 Total Elapsed Time Recorder with Alarm (DS1682) [N/m/y/?] n  
  18.   Texas Instruments DAC7512 (TI_DAC7512) [N/m/y/?] n  
  19.   UID based statistics tracking exported to /proc/uid_stat (UID_STAT) [Y/n] y  
  20.   Bluetooth power control driver for TI wl127x (WL127X_RFKILL) [N/m/y/?] n  
  21.   Android kernel panic diagnostics driver (APANIC) [N/y/?] n  
  22.    6 Axis sensor mpu3050 (SIX_AXIS_SENSOR_MPU3050) [N/y] n  
  23.   Motion Processing Unit driver version  
  24.   > 1. MPU version < v3.4.0 (MPU_PRE_V340)  
  25.     2. MPU version >= v3.4.0 (MPU_NEW)  
  26.   choice[1-2]: 1  
  27.   BOSCH BMA222 acceleration sensor (BOSCH_SENSOR) [N/m/y/?] (NEW) N  
  28.   *  
  29.   * Miscellaneous I2C Chip support  
  30.   *  
  31.   BMA222 acceleration sensor support (BOSCH_BMA222) [N/m/y/?] (NEW) N  
  32. #  
  33. # configuration written to .config  
  34.   
  35.    
make uImage -j16
scripts/kconfig/conf -s arch/arm/Kconfig
*
* Restart config...
*
*
* Misc devices
*
Misc devices (MISC_DEVICES) [Y/n/?] y
  Analog Devices AD525x Digital Potentiometers (AD525X_DPOT) [N/m/y/?] n
  Android pmem allocator (ANDROID_PMEM) [N/y] n
  Integrated Circuits ICS932S401 (ICS932S401) [N/m/y/?] n
  Enclosure Services (ENCLOSURE_SERVICES) [N/m/y/?] n
  Kernel Debugger Core (KERNEL_DEBUGGER_CORE) [N/y/?] n
  Intersil ISL29003 ambient light sensor (ISL29003) [N/m/y/?] n
  Taos TSL2550 ambient light sensor (SENSORS_TSL2550) [N/m/y/?] n
  Dallas DS1682 Total Elapsed Time Recorder with Alarm (DS1682) [N/m/y/?] n
  Texas Instruments DAC7512 (TI_DAC7512) [N/m/y/?] n
  UID based statistics tracking exported to /proc/uid_stat (UID_STAT) [Y/n] y
  Bluetooth power control driver for TI wl127x (WL127X_RFKILL) [N/m/y/?] n
  Android kernel panic diagnostics driver (APANIC) [N/y/?] n
   6 Axis sensor mpu3050 (SIX_AXIS_SENSOR_MPU3050) [N/y] n
  Motion Processing Unit driver version
  > 1. MPU version < v3.4.0 (MPU_PRE_V340)
    2. MPU version >= v3.4.0 (MPU_NEW)
  choice[1-2]: 1
  BOSCH BMA222 acceleration sensor (BOSCH_SENSOR) [N/m/y/?] (NEW) N
  *
  * Miscellaneous I2C Chip support
  *
  BMA222 acceleration sensor support (BOSCH_BMA222) [N/m/y/?] (NEW) N
#
# configuration written to .config

 
        这时看编译输出,系统没有编译mma7660.c, 而且编译后.config的MMA7660的宏也被覆盖掉了,所以这样是没有办法挂载的。之所以出现这个错误的原因,是因为make的时候会检查各个Kconfig文件,没有的选项会自动率掉,所以,我们还需要修改Kconfig文件。


5. 修改kernel/driver/misc/Kconfig,在menuconfig MISC_DEVICES下添加如下:

  1. config SENSORS_MMA7660  
  2.         tristate "MEMSIC Accelerometer Sensor MMA7660 Driver Support"  
  3.         depends on I2C   
  4.         help  
  5.           If you say yes here you get support for the MEMSIC accelerometer sensor  
config SENSORS_MMA7660
        tristate "MEMSIC Accelerometer Sensor MMA7660 Driver Support"
        depends on I2C 
        help
          If you say yes here you get support for the MEMSIC accelerometer sensor

6. 由于这里gsensor是一个i2c的外挂,所以,还必须修改板子的i2c的device信息,以便系统可以查找到设备。修改板子的资源文件(我这里的特例是./arch/arm/mach-meson3/board-m3-reff24.c),在结构aml_i2c_bus_info_1[]中添加一下信息:

  1. #ifdef CONFIG_SENSORS_MMA7660  
  2.        {  
  3.                 I2C_BOARD_INFO("mma7660", 0x4C),  
  4.                 .irq = INT_GPIO_2,  
  5.         },  
  6. #endif  
#ifdef CONFIG_SENSORS_MMA7660
       {
                I2C_BOARD_INFO("mma7660", 0x4C),
                .irq = INT_GPIO_2,
        },
#endif

7. 再进行编译,驱动就被编译了。

内容概要:本文研究了基于DPWMA调制与正负序分离的ANPC三电平并网逆变器前馈控制策略,旨在解决传统三电平逆变器存在的谐波含量高、电网不平衡工况适应性差及动态响应速度不足等问题。通过采用有源中点箝位(ANPC)三电平逆变器拓扑,结合双极性倍频脉宽调制(DPWMA)、正负序分离锁相技术和电网电压前馈控制,构建了一套一体化的高性能并网控制体系。该体系不仅优化了逆变器的开关动作机制,改善了输出电压电流的谐波特性,而且通过精确的相位同步和扰动补偿,显著提高了系统的动态响应能力和抗扰性能。仿真结果显示,所提出的控制策略能有效降低并网谐波含量,提升锁相精度与系统动态稳定性,确保在复杂电网工况下的高质量稳定并网。 适合人群:具备一定电力电子基础知识和仿真技能的研发人员,尤其是从事新能源发电、储能系统、柔性输电等领域研究的专业人士。 使用场景及目标:①研究和开发高性能并网逆变器,特别是针对大功率、高电能质量要求的应用场景;②探索如何通过先进的调制和控制策略来提高并网逆变器对电网扰动的适应性和响应速度;③为相关领域的学术研究和技术开发提供理论依据和实践指导。 阅读建议:建议读者结合实际的仿真软件(如MATLAB/Simulink)进行实践操作,以便更好地理解和掌握文中提到的各种控制策略的具体实现方法。同时,鼓励读者关注最新的研究成果和发展趋势,不断深化对该领域的认识。
摘要 在全球生态环境问题日益严峻、公众环保参与意愿持续提升的背景下,传统环保志愿者招募与管理模式存在信息传播零散、供需对接不畅、管理效率低下等痛点,制约了环保公益事业的规模化发展。为解决上述问题,响应生态保护数字化发展需求,本课题设计实现“守望自然”环保志愿者招募与管理网站,通过数字化手段打通环保组织与志愿者的服务链路,对推动环保公益规范化、高效化发展具有重要的现实意义与实践价值。 该网站采用B/S架构与前后端分离模式开发,前端基于Vue架构建组件化响应式界面;后端以Java为开发语言,采用Spring Boot框架搭建应用,搭配MyBatis作为持久层框架,数据库选用MySQL并遵循第三范式设计7个以上核心数据表。系统涵盖用户与管理员两大核心角色,实现了闭环式环保志愿服务功能:用户端支持注册登录、个人信息管理、活动查询报名、环保知识学习、社区互动、问题反馈及客服咨询等功能,满足用户全流程参与需求;管理员端具备用户管理、用户审核、招募与活动信息发布管理、环保知识内容管理、问题反馈处理、证书模板管理、多维度数据可视化分析及社区内容监管等功能,全面支撑环保组织运营管理。开发过程中集成了Token身份认证、MD5密码加密、ECharts数据可视化等关键技术,融入活动智能推荐、数据驱动决策等创新设计,确保系统功能完备性与实用性。 经功能测试、性能测试及安全测试验证,系统运行稳定可靠,具有良好的易用性、安全性和可扩展性,能够高效满足环保组织的用户招募管理需求与用户的多元化参与需求,有效降低环保组织运营成本,提升用户参与体验,为环保理念传播与公益事业发展提供有力的数字化支撑。 关键词:环保志愿者;招募管理系统;Spring Boot;Vue;数据可视化
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值