GT9XX触摸驱动指南:升级与源码解析

需积分: 10 6 下载量 53 浏览量 更新于2024-09-10 收藏 420KB PDF 举报
"GT9XX Driver Porting Guide是一份详细的文档,针对GT9xx型号触摸驱动提供了全面的移植指南。这份文档首先介绍了驱动的基本信息,包括支持的芯片类型(GT9xx)、I2C设备地址(0x5d和0x14)、16位I2C寄存器寻址方式、以及固件升级和传感器ID等关键特性。其中,SensorID被设定为6,表明这是一个六号传感器设备。 文档的核心部分着重于驱动源代码文件的描述: 1. gt9xx.c(必需):这是驱动的主要源码文件,负责实现基础功能,如驱动加载、报告、暂停和恢复等功能。作为核心驱动组件,它确保了触摸屏功能的正常运行。 2. gt9xx.h(必需):头文件包含了预定义宏、常量、变量声明和子程序原型。这些定义对理解和编译驱动至关重要,用于管理接口和数据结构。 3. gt9xx_update.c(推荐):虽然不是触摸屏功能运行所必需的,但强烈建议包含此文件,因为它支持固件升级。通过这个文件,开发者可以确保触摸IC更新到最新的软件版本,从而提升系统的稳定性与性能。 4. goodix_tool.c(推荐):这个推荐的源文件用于支持Goodix Tools.apk,它在Android设备上运行,便于测试、调试和优化硬件性能。尤其对于整合在板(COB)设计的设备,工具集简化了整个调试和优化流程,使得开发人员能够快速定位和解决问题。 这份指南为GT9XX驱动的移植提供了详尽的指导,涵盖了驱动的基础结构、关键组件以及与外部工具的集成,有助于开发者高效地进行驱动移植和维护工作。通过遵循文档中的步骤和建议,开发者能够确保其产品在兼容性和性能上的最佳表现。"

void sl_notify_gap_evt_to_porting_layer(sl_bt_msg_t *evt) { sl_status_t sc; bd_addr address; uint8_t address_type; struct ble_gap_event event; memset(&event, 0, sizeof(event)); switch (SL_BT_MSG_ID(evt->header)) { // ------------------------------- // This event is generated when an advertisement packet or a scan response // is received from a responder case sl_bt_evt_scanner_legacy_advertisement_report_id: memset(&event, 0, sizeof(event)); event.type = BLE_GAP_EVENT_DISC; event.disc.event_type = convert_to_nimble_adv_type(evt->data.evt_scanner_legacy_advertisement_report.event_flags); event.disc.length_data = evt->data.evt_scanner_legacy_advertisement_report.data.len; event.disc.data = evt->data.evt_scanner_legacy_advertisement_report.data.data; event.disc.addr.type = evt->data.evt_scanner_legacy_advertisement_report.address_type; memcpy(event.disc.addr.val, evt->data.evt_scanner_legacy_advertisement_report.address.addr, 6); event.disc.rssi = evt->data.evt_scanner_legacy_advertisement_report.rssi; notify_ble_event_to_listeners(&event); break; // ------------------------------- // This event indicates that a new connection was opened. case sl_bt_evt_connection_opened_id: event.type = BLE_GAP_EVENT_CONNECT; event.connect.conn_handle = evt->data.evt_connection_opened.connection; app_log_info("BLE connected, conn_id:%d\n", event.connect.conn_handle); notify_ble_event_to_listeners(&event); break; // ------------------------------- // This event indicates that a connection was closed. case sl_bt_evt_connection_closed_id: event.type = BLE_GAP_EVENT_DISCONNECT; event.disconnect.conn.conn_handle = evt->data.evt_connection_closed.connection; event.disconnect.reason = evt->data.evt_connection_closed.reason; app_log_info("BLE disconnected, conn_id:%d, reason:0x%02x\n", event.disconnect.conn.conn_handle, event.disconnect.reason); notify_ble_event_to_listeners(&event); break; case sl_bt_evt_gatt_mtu_exchanged_id: event.type = BLE_GAP_EVENT_MTU; event.mtu.conn_handle = evt->data.evt_gatt_mtu_exchanged.connection; event.mtu.value = evt->data.evt_gatt_mtu_exchanged.mtu; app_log_info("exchange mtu req: %d\n", event.mtu.value); notify_ble_event_to_listeners(&event); break; default: break; } }

2023-06-10 上传