全志A64触摸屏驱动调试

2023-10-27

一、前言

     linux的触摸屏驱动一般要经历一下几个步骤(以4412为例):1.移植驱动到linux源码“driver/input/touchscreen/”目录下,在Kconfig里面增加这款触摸屏驱动的菜单。

#add by long 20170207
config TOUCHSCREEN_GT9XX
                tristate "GT9XX based touchscreens"
                depends on I2C
                help
                  Say Y here if you have a GT9XX based touchscreen
                  controller.

                  If unsure, say N.

                  To compile this driver as a module, choose M here: the
                  module will be called GT9XX.
#end add


2.在“driver/input/touchscreen/Makefile"文件里增加编译条件,控制触摸屏驱动是否编译。

obj-$(CONFIG_TOUCHSCREEN_GT9XX) += gt9xx_module.o
gt9xx_module-objs := gt9xx.o gt9xx_update.o goodix_tool.o

3.增加板载驱动信息。修改方法,,在“arch/arm/mach-exynos/mach-itop4412.c“增加

#if defined(CONFIG_TOUCHSCREEN_GT9XX)
{
         //I2C_BOARD_INFO("Goodix-TS", 0x5d),
     I2C_BOARD_INFO("Goodix-TS", 0x14),
},
#endif


二、全志平台触摸屏驱动移植

1.简介

      全志平台对于input设备有专门的模块程序进行管理,无需添加专门的初始化信息或者insmod驱动,这个模块就是“sw-device.c”,所在位置“drivers/input/sw-device.c”。安卓系统初始化的时候只需要安装sw-device.ko即可

“ insmod /system/vendor/modules/sw-device.ko” 

sw-device所支持的设备有






2.移植gt928触摸屏驱动的步骤1:修改sys_config.fex

若 sys_config.fex 文件中不存在 ctp_list 配置项时,请添加该配置项,且将不使用的存在冲突的设备设置为 0,即将其剔除出扫描列表。已支持的设备不存在冲突情况,但是为了减少检测时间,也可以将不使用的模组剔除出扫描列表。将 gt82x 系列剔除出扫描列表,

sys_config.fex 文件中关系到自动 ctp 自动检测功能的为 “ctp”以及“ ctp_list”
两块参数。如下所示:
[ctp]
compatible       = "allwinner,sun50i-ctp-para"
ctp_used        = 1
ctp_name        = "gt9xxf_ts"
ctp_twi_id       = 1
ctp_twi_addr      = 0x14
ctp_screen_max_x    = 1280
ctp_screen_max_y    = 800
ctp_revert_x_flag    = 0
ctp_revert_y_flag    = 0
ctp_exchange_x_y_flag  = 1

ctp_int_port      = port:PH10<6><default><default><default>
ctp_wakeup       = port:PH11<1><default><default><1>
ctp_power_ldo      = "vcc-ctp"
ctp_power_ldo_vol    = 3300
ctp_power_io        =
;-----------------------------------------------------------------------
如果ctp_used 设置为0 ,表示不使用ctp,则将不继续ctp的自动检测。
;------------------------------------------------------------------------
[ctp_list]
ctp_list_used = 1 //设置为 1 时,启动自动检测,设置为 0 时,不检测
ft5x_ts   = 1 //设置为 1,添加该型号 TP 到自动扫描列表
gt82x     = 0 //设置为 0,不添加该型号 TP 到自动扫描列表
gslX680   = 0 //gslX680 旧量产工具 TP,和 gslX680new 不能同时为 1
gslX680 new = 0 //gslX680 新量产工具 TP,和 gslX680 不能同时为 1
gt9xx_ts  = 0
gt9xxf_ts = 1
gt811     = 0
zet622x   = 0
ctp_list列表中的名称顺序必须与 sw-device.c中ctps的名称顺序一一对应。
当ctp_list_used 设置为1时,启用自动检测,将设置为0时,退出自动检测。模块
的名称后面写 1表示添加到自动检测扫描列表,写0表示剔除自动检测扫描列表

3.移植gt928触摸屏驱动的步骤2:修改menuconfig

在编译服务器上,目录为\lichee\linux-3.10 上,输入以下命令:make ARCH=arm64 menuconfig进入目录 Device Drivers\Input device support\ i2c device detect support 目录下可以看到 device 模块是编译为模块、编译进内核、不编译。 device 驱动默认编译为模块

Symbol: TOUCHSCREEN_GT9XXF_TS [=m]                                                                          
 Type  : tristate                                                                                        
 Prompt: gt9XXF touchscreen driver                                                                      
Location:                                                                                            
-> Device Drivers                                                                                  
-> Input device support                                                                          
> Generic input layer (needed for keyboard, mouse, ...) (INPUT [=y])                            
-> Touchscreens (INPUT_TOUCHSCREEN [=y])                                                      
Defined at drivers/input/touchscreen/gt9xxf/Kconfig:5                                                 
Depends on: !UML && INPUT_TOUCHSCREEN [=y] && INPUT [=y] && I2C [=y]    

4.移植gt928触摸屏驱动的步骤3:修改sw_device

sw-device.c 中的修改主要为增加设备的描述信息,将相关的描述信息增加到相应的 sw_device_info 中的变量中即可。结构体 sw_device_info 用于存放设备的相关信息,该结构体的相关变量如下列表所示:注意:当有两个或者以上的设备地址相同,且存在两个设备没有 chip id 值时,将按照顺序检测,返回第一个检测到的设备,可能造成错误,因此当存在两个设备没有 chip id 时,为了确保无误,请将不使用的设备剔除掉。CTP 设备的 sw_device_info 结构体变量为 ctps,如果增加的设备为 ctp 设备,只需要按照 sw_device_info 中的格式,添加相关的信息放置到 ctps 变量中即可。Gsensor 设备的 sw_device_info 结构体变量为 gsensors,如果增加的设备为gsensor 设备,只需要按照 sw_device_info 中的格式,添加相关的信息放置到 gsensors变量中即可。以下针对 sw_device_info 中相关的设置进行相关的说明。( 1)进行 chip id 值检测ctp 中需要增加 gt811 这个设备到自动检测中,编译之后的模块驱动名称为:“gt811”, I2C 地址可以设置为 0x5d; chip id 寄存器为 0x715; chip id 值为 0x11。描述信息如下所示:

static struct sw_device_info ctps[] = {
{ "ft5x_ts", { 0x38}, 0xa3, {0x0a,0x55,0x06,0x08,0x02,0xa3}, 0},
{ "gt82x", { 0x5d}, 0xf7d, {0x13,0x27,0x28 }, 0},
{ "gslX680", { 0x40}, 0x00, {0x00 }, 1},
{"gslX680new", { 0x40}, 0x00, {0x00 }, 1},
{"gt9xx_ts", { 0x14,0x5d}, 0x8140, {0x39 }, 0},
{"gt9xxf_ts",{ 0x14,0x5d}, 0x00, {0x00 }, 1},
{ "gt811", { 0x5d}, 0x715, {0x11 }, 0},
{"gt818_ts", { 0x5d}, 0x715, {0xc3 }, 0},
{"aw5306_ts",{ 0x38}, 0x01, {0xA8 }, 0},
{ "zet622x", { 0x76}, 0x00, {0x00 }, 0},}


( 2)不进行 chip id 值检测当设备没有 chip id 值时,可以不进行 chip id 的检测,此时 chip_id_reg 以及id_value 都必须设置为 0x00,否者将可能造成错误。这些设备都只检测 i2c 通信而不进行 chip id 值的判断,当所支持的设备中,没有产生地址冲突的情况时,也可以将chip_id_reg 以及 id_value 设置为 0x00 而不检测 chip id。zet622x ctp 设备没有 chip id 如下所示: 

static struct sw_device_info ctps[] = {
{ "ft5x_ts", { 0x38}, 0xa3, {0x0a,0x55,0x06,0x08,0x02,0xa3}, 0},
{ "gt82x", { 0x5d}, 0xf7d, {0x13,0x27,0x28 }, 0},
{ "gslX680", { 0x40}, 0x00, {0x00 }, 1},
{"gslX680new", { 0x40}, 0x00, {0x00 }, 1},
{"gt9xx_ts", { 0x14,0x5d}, 0x8140, {0x39 }, 0},
{"gt9xxf_ts",{ 0x14,0x5d}, 0x00, {0x00 }, 1},
{ "gt811", { 0x5d}, 0x715, {0x11 }, 0},
{"gt818_ts", { 0x5d}, 0x715, {0xc3 }, 0},
{"aw5306_ts",{ 0x38}, 0x01, {0xA8 }, 0},
{ "zet622x", { 0x76}, 0x00, {0x00 }, 0},}

( 3) same_flagsame_flag 为当支持的设备中有两个或者以上的设备地址相同,当有一个以上设备是没有 chip id 时,需要写 1 进行标识。当有两个设备以上地址相同且没有 chip id,则将按照顺序进行检测,且返回检测到的第一个设备。为避免错误,当两个以上设备地址相同且没有 chip id 值时,请将方案中不需要的设备剔除掉。剔除的方法为sys_config.fex 中相应的模组名称后写 0。

注意:当增加一个设备时,除了在 sw-device.c 中添加 sw-device_info 结构体设备的配置信息外,sys_config.fex 文件中也需要在设备的列表中增加该设备,增加检测的可选性。ctp 中的设备列表为“ [ctp_list]”, gsensor 中的设备列表为“[gsensor_list]”。如在 sw_device.c 中的 ctps 增加了“ gt9xx”,在“ ctp_list”中需要增加相应的配置项,否则将默认添加到扫描列表中。Xxx_list 中设备的名称需要跟 sw_device_info 中设备的名称顺序对应,且名称必须一致,否则将无法正确解析,默认将所有的都添加到扫描列表中。

示例如下:

sys_config.fex文件的ctp_list如下图所示


sw_device.c的设备列表如下:


5.移植gt928触摸屏驱动的步骤4:驱动的拷贝

编译过程中使用的命令: $extract-bsp ,将把驱动拷贝到指定的目录中备用。编译后的目录: out\ target\product\...\system\vendor\modules,省略的部分为lunch 时选择选择的配置文件夹名称。机器中对应的目录为: /system/vendor/modules

6.移植gt928触摸屏驱动的步骤5:测试触摸屏驱动

重新打包安卓的镜像烧录到开发板,开机后读取驱动的信息。默认情况下驱动的信息是不显示的,需要更改sw_device.c的调试等级才会显示。

调试信息如下

shell@tulip-t1:/ # dmesg |grep gt9   
<4>[   22.205895] get_detect_list name = gt9xxf_ts
<4>[   22.205901] number 6, module_name:gt9xxf_ts  is_support:1
<4>[   22.205905] get_detect_list name = gt9xxnew_ts
<4>[   22.205911] number 5, module_name:gt9xxnew_ts  is_support:0
<4>[   22.205916] get_detect_list name = gt9xx_ts
<4>[   22.205921] number 4, module_name:gt9xx_ts  is_support:0
<4>[   22.304202] sw_device_response_test: name = gt9xxf_ts, addr = 0x14
<4>[   22.402562] sw_device_response_test: name = gt9xxf_ts, addr = 0x5d
<4>[   22.403183] from copy name:gt9xxf_ts, strlen(name):0
<4>[   22.403306] write info:ctp_module_name="gt9xxf_ts"
<4>[  102.924129] i2c-core: driver [gt9xxf_ts] using legacy suspend method
<4>[  102.924142] i2c-core: driver [gt9xxf_ts] using legacy resume method
<6>[  103.032128] input: gt9xxf_ts as /devices/virtual/input/input5


7.官方关于sw_device的使用说明

CTP 使用步骤

( 1)自动检测支持的模组

FT 系列: ft5202, ft5204, ft5316, ft5x06(共用一个驱动, ft5x_ts.ko);驱动源文件目录: \lichee\linux-3.10\drivers\input\touchscreen\ft5x

Goodix 系 列 : gt813,gt827,gt828(gt82x.ko) , 驱 动 源 文 件 目 录 :\lichee\linux-3.10\drivers\input\touchscreen

gt9xx 系列(gt9xx_ts.ko),可以 gt9xx 系列中带 flash的触摸 IC 可以在此驱动中添加支持,驱动源文件目录: \lichee\linux-3.10\drivers\input\touchscreen\gt9xx;

gt9xxf 系列(gt9xxf_ts.ko),可以 gt9xx 系列中不带 flash的触摸 IC 可以在此驱动中添加支持;驱动源文件目录: \lichee\linux-3.10\drivers\input\touchscreen\gt9xxf

GSL 系列: gsl1680,gsl2681,gsl1688,gsl1680e(gslX680.ko),驱动源文件目录:\lichee\linux-3.10\drivers\input\touchscreen\gslx680;

GSL 系 列 (gslX680new.ko), 驱 动 源 文 件 目 录 :\lichee\linux-3.10\drivers\input\touchscreen\gslx680new,此驱动用于支持 GSL系列中,新量产工具生成的 firmware 的触摸 IC;

AW 系列, aw5206,aw5306(aw5306_ts.ko);驱动源文件目录: \lichee\linux-3.10\drivers\input\touchscreen\aw5x06。

( 2)驱动的拷贝编译过程中使用的命令:

$extract-bsp ,将把驱动拷贝到指定的目录中备用。编译后的目录: out\ target\product\...\system\vendor\modules,省略的部分为lunch 时选择选择的配置文件夹名称。机器中对应的目录为: /system/vendor/modules

( 3) sys_config.fex 文件的修改

若 sys_config.fex 文件中不存在 ctp_list 配置项时,请添加该配置项,且将不使用的存在冲突的设备设置为 0,即将其剔除出扫描列表。已支持的设备不存在冲突情况,但是为了减少检测时间,也可以将不使用的模组剔除出扫描列表。将 gt82x 系列剔除出扫描列表,如下所示。

[ctp_list]
ctp_list_used = 1
ft5x_ts = 1
gt82x = 0
gslX680 = 1
gslX680new = 0
gt818 = 1
zet622x = 1
aw5306_ts = 1

( 4)驱动的加载使用自动检测功能时,只需要加载 sw-device.ko 即可。

在 android\device\softwinner\polaris-xxx\init.xxx.rc 中添加驱动加载的模块,为了快速的检测到设备,此语句应该放置在模块加载的最前面,如下所示:

on fs
……
#csi module
insmod /system/vendor/modules/videobuf-core.ko
insmod /system/vendor/modules/videobuf-dma-contig.ko
#insmod tp and keyboard gsensor
insmod /system/vendor/modules/sw-device.ko
insmod /system/vendor/modules/sunxi-keyboard.ko
#insmod usb ethernet
insmod /system/vendor/modules/asix.ko
insmod /system/vendor/modules/qf9700.ko
......如果 Gsensor 使用而 CTP 不想使用时,只需要修改 sys_config.fex 中 的“ctp_list”主键下的 “ctp_list_used”子键值,将其设置为 0 即可,而不需要将加载语句删除掉,这样 ctp 驱动就不会被自动检测和加载。

(5) IDC 文件使用

adb shell getevent 命令,或者设备的名称为“ gslX680”,“ gt82x”,“ ft5x_ts”,“sunxi-ts”,“gt818_ts”,“gt811_ts”,“gt9xx”,“sw-ts”时,使用的 idc 名字均为 tp.idc。 idc 文件放置的目录为:system/usr/idc ,则在配置文件为 polaris_xx.mk拷贝语句如下所示:


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

全志A64触摸屏驱动调试 的相关文章

  • Android中LCD背光驱动

    分类 Linux驱动 Android系统 2013 06 17 16 28 287人阅读 评论 0 收藏 举报 目录 Android的Setting Android的背光JNI层 Android的背光HAL层 Linux的背光内核层 Lin
  • Linux嵌入式所有知识点-思维导图-【一口君吐血奉献】

    一 前言 很多粉丝问我 我的Linux和嵌入式当初是如何学习的 其实彭老师在最初学习的过程中 走了相当多的弯路 有些可以不学的花了太多的时间去啃 有些作为基础必须优先学习的 却忽略了 结果工作中用到这些知识时傻眼了 有些需要后面进阶阶段学习
  • OpenHarmony 标准系统HDF框架之I2C驱动开发

    OpenHarmony 标准系统HDF框架之I2C驱动开发 主要内容 I2C 基础知识 I2C 基础知识 概念和特性 I2C 基础知识 协议 四种信号组合 I2C 调试手段 I2C 调试手段 硬件 I2C 调试手段 软件 HDF 框架下的
  • Linux下开发怎样才算入门了?

    记得大学学单片机的时候 也很想知道自己到底学的怎样了 到了什么水平 到处问人单片机开发怎么才算入门了 最后老师跟我说 能做一个万年历出来就算入门了 于是用单片机控制显示器做一个万年历就成了我的目标 通过按键进行日期设置与时间调整 能区分闰年
  • 使用自旋锁实现驱动设备的互斥访问

    代码来源 Linux设备驱动开发详解 宋宝华 p172 int xxx count 0 定义文件打开次数 static int xxx open struct inode inode struct file filp spinlock xx
  • 新唐NUC980使用记录(5.10.y内核):在用户应用中使用GPIO

    文章目录 目的 使用参考与演示 使用参考 存在的问题 问题定位 修改设备树 使用测试 总结 设备树文件内容 目的 GPIO是最基础的外设 使用频率也非常高 这篇文章将简单体验在NUC980 Liunx用户应用中使用GPIO功能 这篇文章中内
  • GDB调试器常用命令

    1 l命令 list 列出所有程序源码 2 b命令 break 用于设置断点 break main 表示在 main 函数处设置断点 break 11 在第 11 行设置断点 3 c命令用于运行到断点处 输入 c 命令程序就会运行 直到下一
  • BootLoader简介——linux内核的引导

    1 BootLoader 在CPU上电启动时 一般连内存控制器都没有初始化过 根本无法在主存中运行程序 更不可能处在Linux内核启动环境中 为了初始化CPU及其他外设 使得Linux内核可以在系统主存中运行 并让系统符合Lintix内核启
  • stmmac ethernet

    学习笔记 网卡驱动 从这里看起stmmac register platform 注册一个平台驱动 const struct stmmac of data meson dwmac data setup meson dwmac setup fi
  • linux tasklet 的分析与使用

    linux tasklet 的分析与使用 目录 linux tasklet 的分析与使用 tasklet 源码分析 tasklet shedule 调度的分析 tasklet 执行 tasklet 使用简单示例 结论 tasklet 是利用
  • 段错误(核心已转储)问题的分析方法

    问题现象 今天在研究linux kernel中typedef的用法时 写了一个程序test typedef c 内容如下 include
  • petalinux添加AD9361驱动

    文章目录 一 准备工具 二 步骤 需要 petalinux2016 2 包含AD9361驱动的Linux内核 xcomm zynq 4 4 一 准备工具 ADI提供的AD9361Linux驱动 https wiki analog com r
  • ioctl函数详解

    大部分驱动除了需要具备读写设备的能力之外 还需要具备对硬件控制的能力 一 在用户空间 使用ioctl系统调用来控制设备 原型如下 cpp view plain copy int ioctl int fd unsigned long cmd
  • 十九、Linux驱动之虚拟网卡驱动

    1 基本概念 网络设备是完成用户数据包在网络媒介上发送和接收的设备 它将上层协议传递下来的数据包以特定的媒介访问控制方式进行发送 并将接收到的数据包传递给上层协议 与字符设备和块设备不同 网络设备并不对应于 dev目录下的文件 应用程序最终
  • linux驱动调试--段错误之栈信息分析

    转自 http blog chinaunix net xmlrpc php r blog article uid 29401328 id 4923529 接着上一篇来分析一下Oops的栈 s3c2440平台 关于调试源码和整个Oops信息请
  • make -C $(LINUX_KERNEL_PATH) M=$(PWD) modules中的M选项

    新的内核模块编程中的make命令里有个M选项 如下 make C lib modules shell uname r build M PWD modules M PWD 意思是返回到当前目录继续读入 执行当前的Makefile 请参考 从
  • Linux驱动_多点电容触摸

    一丶Linux下多点电容触摸驱动框架 电容触摸屏IC是FT5426 为IIC协议芯片 因此需要编写IIC驱动 触摸IC会发出中断信号 并在中断服务函数中上报信息 因此需要编写中断框架 触摸屏向Linux内核上报的信息都属于Input子系统
  • 【内核驱动】Linux概述

    00 目录 文章目录 00 目录 01 Unix简介 02 Linux简介 03 Linux发展史 04 单内核与微内核区别 05 Linux内核 06 Linux内核组成 07 Linux官方网站 08 附录 01 Unix简介 UNIX
  • spi总线挂载多个设备的设备树描述

    内核版本 linux4 6 Vivado版本 201602 工程中用到很多spi控制的从设备 首先对FPGA工程的正确性验证一下 验证的设备树描述如下 spi e0006000 compatible xlnx zynq spi r1p6 r
  • 【RK3399】I3399烧写Android系统详解

    00 目录 文章目录 00 目录 01 驱动安装 02 Android镜像文件烧写 03 问题讨论 04 附录 01 驱动安装 1 1 没有安装驱动的时候 显示感叹号 1 2 解压DriverAssitant v5 1 1 zip 1 3

随机推荐

  • 深入理解文字高度和行高的设置

    font size设置的是什么 line height设置的是什么 各种行高是怎么计算出来的 你真的知道吗 1 从font size讲起 说文字高度 当你按住鼠标左键选中一段文字的时候 这段文字背后会有一个颜色变化的区域 这个区域可以近似的
  • 零基础开发WIFI设备(esp8266)

    目录 前言 一 本例程实现功能 二 Core提供的TCP功能介绍 三 接线图 四 材料清单 五 完整代码 通过IP地址和服务器建立连接 代码运行结果 前言 shineblink core 开发板 简称Core 的库函数支持WIFI功能 所以
  • 将websocket通信端口代理到TCP通信端口的方法记录

    websocketproxy代理服务基于go语言实现 功能描述 Proxy of gateway Websockt transfer TCP protocol Websocket gt TCP TCP gt Websocket 即 实现将w
  • 禅道项目管理系统RCE漏洞复现+利用

    1 漏洞概述 禅道研发项目管理软件是国产的开源项目管理软件 专注研发项目管理 内置需求管理 任务管理 bug管理 缺陷管理 用例管理 计划发布等功能 实现了软件的完整生命周期管理 2023年1月6日 互联网披露其旧版本中存在权限绕过与命令执
  • 编写一个方法,将字符串中的空格全部替换为“%20”

    请编写一个方法 将字符串中的空格全部替换为 20 假定该字符串有足够的空间存放新增的字符 并且知道字符串的真实长度 小于等于1000 同时保证字符串由大小写的英文字母组成 给定一个string iniString 为原始的串 以及串的长度
  • 杂凑密码——摘要算法简介

    概念 密码杂凑函数 Cryptographic hash function 又称为密码散列函数 加密散列函数 散列函数的一种 杂凑函数是一种单向函数 要由散列函数输出的结果 回推输入的资料是什么 是非常困难的 散列函数的输出结果 被称为讯息
  • Kotlin inline 关键字

    文章目录 前言 一 inline 是什么 二 未使用 2 使用后 总结 前言 最近又到了面试的季节 今天在面试中被问到了kotlin inline 关键字 感觉回答的不是很好 今天研究一下它 一 inline 是什么 inline 是kot
  • k8s源码解析 - 如何使用yaml创建k8s的资源

    如何初始化k8s中的client 1 kubernetes Clientset 参考链接 集群内访问创建k8s client 直接获取集群内的config 通过config创建clientSet creates the in cluster
  • postconstruct不执行_Spring Boot 应用在启动阶段执行代码的几种方式

    前言 有时候我们需要在应用启动时执行一些代码片段 这些片段可能是仅仅是为了记录 log 也可能是在https dayarch top p pkix certificate import html 诸如上述业务要求我们可能会经常碰到 Spri
  • C# Linq源码分析之Take(五)

    概要 本文在C Linq源码分析之Take 四 的基础上继续从源码角度分析Take的优化方法 主要分析Where Select Take的使用案例 Where Select Take的案例分析 该场景模拟我们显示中将EF中与数据库关联的对象
  • UTF8 到GB2312 的 转换

    这段代码不仅仅是含有UTF8到Unicode的转换 还包括Gb2312 Unicode 到Gb2312 如过不使用Windows API的话 那么自己因该建立一个转化表 这样效率才会好 因为我一时没有找到这种表 如果谁有请贴上来 谢谢 in
  • 快手__nsTokensig和sig签名算法分析

    一 nstokensig签名 最近在学习android逆向 不足之处欢迎大佬多多指点 这次分析的是快手极速版1 2 2 8 使用Fiddler抓包发现有2个签名 一个是 nstokensig和sig 通过jadx gui搜索字符串找到nst
  • MATLAB数值计算——矩阵运算乘法、除法、乘方

    一 矩阵 矩阵是线性代数的基本单元 矩阵含有M行N列数值 矩阵中的元素可以是实数或复数 矩阵相关的基本运算 加 减 内积 逆矩阵 转置 线性方程式 特征值 特征向量 矩阵分解 二 矩阵的运算 2 1 矩阵的乘法运算 运算符 矩阵乘法 矩阵对
  • catalog java,Java Connection getCatalog()方法与示例

    通常 目录是一个目录 其中包含有关数据集 文件或数据库的信息 而数据库目录中包含所有数据库 基本表 视图 虚拟表 同义词 值范围 索引 用户和用户组的列表 Connection接口的getCatalog 方法返回当前连接对象的当前目录 数据
  • 计量经济学学习与Stata应用笔记(五)极大似然估计MLE

    极大似然估计的思想 就是在给定样本值的情况下 构建未知参数的函数 寻找能够使得观测到样本数据的可能性最大的估计参数 定义似然函数为 L y 1
  • TVM中python访问c++函数机制

    data TVM tvm python tvm ffi registry py data TVM tvm python tvm ffi registry py data TVM tvm python tvm ffi ctypes packe
  • Win11系统恢复经典的右键菜单方法(CMD快速执行)

    cmd执行 Win11切换经典右键菜单 reg add HKCU Software Classes CLSID 86ca1aa0 34aa 4e8b a509 50c905bae2a2 InprocServer32 f ve taskkil
  • 彻底卸载VS2013/VS2015及以上版本

    1 彻底卸载Visual Studio 2015 教你如何彻底Visual Studio 2013 Visual Studio 2015及以上版本 解决很多人卸载不干净的问题 2 工具 原料 外国一款叫Visual Studio Unins
  • kafka producer java API的实现

    1 开发环境的构建 使用IDEA MAVEN构建开发环境 可以采用Maven中scala archetype simple模板 2 pom xml的配置 这里scala版本为2 11 8 kafka版本为0 9 0 0
  • 全志A64触摸屏驱动调试

    一 前言 linux的触摸屏驱动一般要经历一下几个步骤 以4412为例 1 移植驱动到linux源码 driver input touchscreen 目录下 在Kconfig里面增加这款触摸屏驱动的菜单 add by long 20170