linux 3.15.2 触摸屏移植之selected device is not a touchscreen I understand
移植触摸屏驱动,和2.6版本的基本一致,只需配置一下,可参考本博客以前的文章。
编译后运行tslib终端打印出“selected device is not a touchscreen I understand” 错误提示
进入tslib的源码目录 grep -Ren “selected device is not a touchscreen I understand”
static int check_fd(struct tslib_input *i)
{struct tsdev *ts = i->module.dev;int version;u_int32_t bit;u_int64_t absbit;if (! ((ioctl(ts->fd, EVIOCGVERSION, &version) >= 0) &&(version == EV_VERSION) &&(ioctl(ts->fd, EVIOCGBIT(0, sizeof(bit) * 8), &bit) >= 0) &&(bit & (1 << EV_ABS)) &&(ioctl(ts->fd, EVIOCGBIT(EV_ABS, sizeof(absbit) * 8), &absbit) >= 0) &&(absbit & (1 << ABS_X)) &&(absbit & (1 << ABS_Y)) && (absbit & (1 << ABS_PRESSURE)))) {fprintf(stderr, "selected device is not a touchscreen I understand\n");return -1;}if (bit & (1 << EV_SYN))i->using_syn = 1;return 0;
}
检查EV_VERSION find -name input.h | xargs grep -Rnw "EV_VERSION"
/Documents/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/sys-root/usr/include/linux/input.h:32:#define EV_VERSION 0x010000
./Documents/4.4.3/arm-none-linux-gnueabi/sys-root/usr/include/linux/input.h:32:#define EV_VERSION 0x010000
./NFS/linux-3.15.2/include/uapi/linux/input.h:35:#define EV_VERSION 0x010001
./Downloads/linux/include/linux/input.h:37:#define EV_VERSION 0x010000
编译工具gcc的定义为0x010000 而3.15.2内核的定义为0x010001
修改
/linux-3.15.2/include/uapi/linux/input.h:35:#define EV_VERSION 0x010000
编译内核问题依旧,注意到有
(absbit & (1 << ABS_PRESSURE))
而s3c2410_ts.c中的相关语句被去掉了修改s3c2410_ts.c
修改后如下
/** Samsung S3C24XX touchscreen driver** This program is free software; you can redistribute it and/or modify* it under the term of the GNU General Public License as published by* the Free Software Foundation; either version 2 of the License, or* (at your option) any later version.** This program is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the* GNU General Public License for more details.** You should have received a copy of the GNU General Public License* along with this program; if not, write to the Free Software* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA** Copyright 2004 Arnaud Patard <arnaud.patard@rtp-net.org>* Copyright 2008 Ben Dooks <ben-linux@fluff.org>* Copyright 2009 Simtec Electronics <linux@simtec.co.uk>** Additional work by Herbert P枚tzl <herbert@13thfloor.at> and* Harald Welte <laforge@openmoko.org>*/#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/gpio.h>
#include <linux/input.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
#include <linux/clk.h>
#include <linux/io.h>#include <plat/adc.h>
#include <plat/regs-adc.h>
#include <linux/platform_data/touchscreen-s3c2410.h>#define TSC_SLEEP (S3C2410_ADCTSC_PULL_UP_DISABLE | S3C2410_ADCTSC_XY_PST(0))#define INT_DOWN (0)
#define INT_UP (1 << 8)#define WAIT4INT (S3C2410_ADCTSC_YM_SEN | \S3C2410_ADCTSC_YP_SEN | \S3C2410_ADCTSC_XP_SEN | \S3C2410_ADCTSC_XY_PST(3))#define AUTOPST (S3C2410_ADCTSC_YM_SEN | \S3C2410_ADCTSC_YP_SEN | \S3C2410_ADCTSC_XP_SEN | \S3C2410_ADCTSC_AUTO_PST | \S3C2410_ADCTSC_XY_PST(0))#define FEAT_PEN_IRQ (1 << 0) /* HAS ADCCLRINTPNDNUP *//* Per-touchscreen data. *//*** struct s3c2410ts - driver touchscreen state.* @client: The ADC client we registered with the core driver.* @dev: The device we are bound to.* @input: The input device we registered with the input subsystem.* @clock: The clock for the adc.* @io: Pointer to the IO base.* @xp: The accumulated X position data.* @yp: The accumulated Y position data.* @irq_tc: The interrupt number for pen up/down interrupt* @count: The number of samples collected.* @shift: The log2 of the maximum count to read in one go.* @features: The features supported by the TSADC MOdule.*/
struct s3c2410ts {struct s3c_adc_client *client;struct device *dev;struct input_dev *input;struct clk *clock;void __iomem *io;unsigned long xp;unsigned long yp;int irq_tc;int count;int shift;int features;
};static struct s3c2410ts ts;/*** get_down - return the down state of the pen* @data0: The data read from ADCDAT0 register.* @data1: The data read from ADCDAT1 register.** Return non-zero if both readings show that the pen is down.*/
static inline bool get_down(unsigned long data0, unsigned long data1)
{/* returns true if both data values show stylus down */return (!(data0 & S3C2410_ADCDAT0_UPDOWN) &&!(data1 & S3C2410_ADCDAT0_UPDOWN));
}static void touch_timer_fire(unsigned long data)
{unsigned long data0;unsigned long data1;bool down;data0 = readl(ts.io + S3C2410_ADCDAT0);data1 = readl(ts.io + S3C2410_ADCDAT1);down = get_down(data0, data1);if (down) {if (ts.count == (1 << ts.shift)) {ts.xp >>= ts.shift;ts.yp >>= ts.shift;dev_dbg(ts.dev, "%s: X=%lu, Y=%lu, count=%d\n",__func__, ts.xp, ts.yp, ts.count);input_report_abs(ts.input, ABS_X, ts.xp);input_report_abs(ts.input, ABS_Y, ts.yp);input_report_key(ts.input, BTN_TOUCH, 1);input_report_abs(ts.input, ABS_PRESSURE, 1);input_sync(ts.input);ts.xp = 0;ts.yp = 0;ts.count = 0;}s3c_adc_start(ts.client, 0, 1 << ts.shift);} else {ts.xp = 0;ts.yp = 0;ts.count = 0;input_report_key(ts.input, BTN_TOUCH, 0);input_report_abs(ts.input, ABS_PRESSURE, 0);input_sync(ts.input);writel(WAIT4INT | INT_DOWN, ts.io + S3C2410_ADCTSC);}
}static DEFINE_TIMER(touch_timer, touch_timer_fire, 0, 0);/*** stylus_irq - touchscreen stylus event interrupt* @irq: The interrupt number* @dev_id: The device ID.** Called when the IRQ_TC is fired for a pen up or down event.*/
static irqreturn_t stylus_irq(int irq, void *dev_id)
{unsigned long data0;unsigned long data1;bool down;data0 = readl(ts.io + S3C2410_ADCDAT0);data1 = readl(ts.io + S3C2410_ADCDAT1);down = get_down(data0, data1);/* TODO we should never get an interrupt with down set while* the timer is running, but maybe we ought to verify that the* timer isn't running anyways. */if (down)s3c_adc_start(ts.client, 0, 1 << ts.shift);elsedev_dbg(ts.dev, "%s: count=%d\n", __func__, ts.count);if (ts.features & FEAT_PEN_IRQ) {/* Clear pen down/up interrupt *///writel(0x0, ts.io + S3C64XX_ADCCLRINTPNDNUP);}return IRQ_HANDLED;
}/*** s3c24xx_ts_conversion - ADC conversion callback* @client: The client that was registered with the ADC core.* @data0: The reading from ADCDAT0.* @data1: The reading from ADCDAT1.* @left: The number of samples left.** Called when a conversion has finished.*/
static void s3c24xx_ts_conversion(struct s3c_adc_client *client,unsigned data0, unsigned data1,unsigned *left)
{dev_dbg(ts.dev, "%s: %d,%d\n", __func__, data0, data1);ts.xp += data0;ts.yp += data1;ts.count++;/* From tests, it seems that it is unlikely to get a pen-up* event during the conversion process which means we can* ignore any pen-up events with less than the requisite* count done.** In several thousand conversions, no pen-ups where detected* before count completed.*/
}/*** s3c24xx_ts_select - ADC selection callback.* @client: The client that was registered with the ADC core.* @select: The reason for select.** Called when the ADC core selects (or deslects) us as a client.*/
static void s3c24xx_ts_select(struct s3c_adc_client *client, unsigned select)
{if (select) {writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST,ts.io + S3C2410_ADCTSC);} else {mod_timer(&touch_timer, jiffies+1);writel(WAIT4INT | INT_UP, ts.io + S3C2410_ADCTSC);}
}/*** s3c2410ts_probe - device core probe entry point* @pdev: The device we are being bound to.** Initialise, find and allocate any resources we need to run and then* register with the ADC and input systems.*/
static int s3c2410ts_probe(struct platform_device *pdev)
{struct s3c2410_ts_mach_info *info;struct device *dev = &pdev->dev;struct input_dev *input_dev;struct resource *res;int ret = -EINVAL;/* Initialise input stuff */memset(&ts, 0, sizeof(struct s3c2410ts));ts.dev = dev;info = pdev->dev.platform_data;if (!info) {dev_err(dev, "no platform data, cannot attach\n");return -EINVAL;}dev_dbg(dev, "initialising touchscreen\n");ts.clock = clk_get(dev, "adc");if (IS_ERR(ts.clock)) {dev_err(dev, "cannot get adc clock source\n");return -ENOENT;}clk_enable(ts.clock);dev_dbg(dev, "got and enabled clocks\n");ts.irq_tc = ret = platform_get_irq(pdev, 0);if (ret < 0) {dev_err(dev, "no resource for interrupt\n");goto err_clk;}res = platform_get_resource(pdev, IORESOURCE_MEM, 0);if (!res) {dev_err(dev, "no resource for registers\n");ret = -ENOENT;goto err_clk;}ts.io = ioremap(res->start, resource_size(res));if (ts.io == NULL) {dev_err(dev, "cannot map registers\n");ret = -ENOMEM;goto err_clk;}/* inititalise the gpio */if (info->cfg_gpio)info->cfg_gpio(to_platform_device(ts.dev));ts.client = s3c_adc_register(pdev, s3c24xx_ts_select,s3c24xx_ts_conversion, 1);if (IS_ERR(ts.client)) {dev_err(dev, "failed to register adc client\n");ret = PTR_ERR(ts.client);goto err_iomap;}/* Initialise registers */if ((info->delay & 0xffff) > 0)writel(info->delay & 0xffff, ts.io + S3C2410_ADCDLY);writel(WAIT4INT | INT_DOWN, ts.io + S3C2410_ADCTSC);input_dev = input_allocate_device();if (!input_dev) {dev_err(dev, "Unable to allocate the input device !!\n");ret = -ENOMEM;goto err_iomap;}ts.input = input_dev;ts.input->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);ts.input->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);input_set_abs_params(ts.input, ABS_X, 0, 0x3FF, 0, 0);input_set_abs_params(ts.input, ABS_Y, 0, 0x3FF, 0, 0);input_set_abs_params(ts.input, ABS_PRESSURE, 0, 1, 0, 0);ts.input->name = "S3C24XX TouchScreen";ts.input->id.bustype = BUS_HOST;ts.input->id.vendor = 0xDEAD;ts.input->id.product = 0xBEEF;ts.input->id.version = 0x0102;ts.shift = info->oversampling_shift;ts.features = platform_get_device_id(pdev)->driver_data;ret = request_irq(ts.irq_tc, stylus_irq, IRQF_DISABLED,"s3c2410_ts_pen", ts.input);if (ret) {dev_err(dev, "cannot get TC interrupt\n");goto err_inputdev;}dev_info(dev, "driver attached, registering input device\n");/* All went ok, so register to the input system */ret = input_register_device(ts.input);if (ret < 0) {dev_err(dev, "failed to register input device\n");ret = -EIO;goto err_tcirq;}return 0;err_tcirq:free_irq(ts.irq_tc, ts.input);err_inputdev:input_free_device(ts.input);err_iomap:iounmap(ts.io);err_clk:del_timer_sync(&touch_timer);clk_put(ts.clock);return ret;
}/*** s3c2410ts_remove - device core removal entry point* @pdev: The device we are being removed from.** Free up our state ready to be removed.*/
static int s3c2410ts_remove(struct platform_device *pdev)
{free_irq(ts.irq_tc, ts.input);del_timer_sync(&touch_timer);clk_disable(ts.clock);clk_put(ts.clock);input_unregister_device(ts.input);iounmap(ts.io);return 0;
}#ifdef CONFIG_PM
static int s3c2410ts_suspend(struct device *dev)
{writel(TSC_SLEEP, ts.io + S3C2410_ADCTSC);disable_irq(ts.irq_tc);clk_disable(ts.clock);return 0;
}static int s3c2410ts_resume(struct device *dev)
{struct platform_device *pdev = to_platform_device(dev);struct s3c2410_ts_mach_info *info = pdev->dev.platform_data;clk_enable(ts.clock);enable_irq(ts.irq_tc);/* Initialise registers */if ((info->delay & 0xffff) > 0)writel(info->delay & 0xffff, ts.io + S3C2410_ADCDLY);writel(WAIT4INT | INT_DOWN, ts.io + S3C2410_ADCTSC);return 0;
}static struct dev_pm_ops s3c_ts_pmops = {.suspend = s3c2410ts_suspend,.resume = s3c2410ts_resume,
};
#endifstatic struct platform_device_id s3cts_driver_ids[] = {{ "s3c2410-ts", 0 },{ "s3c2440-ts", 0 },{ "s3c64xx-ts", FEAT_PEN_IRQ },{ }
};
MODULE_DEVICE_TABLE(platform, s3cts_driver_ids);static struct platform_driver s3c_ts_driver = {.driver = {.name = "samsung-ts",.owner = THIS_MODULE,
#ifdef CONFIG_PM.pm = &s3c_ts_pmops,
#endif},.id_table = s3cts_driver_ids,.probe = s3c2410ts_probe,.remove = s3c2410ts_remove,
};static int __init s3c2410ts_init(void)
{return platform_driver_register(&s3c_ts_driver);
}static void __exit s3c2410ts_exit(void)
{platform_driver_unregister(&s3c_ts_driver);
}module_init(s3c2410ts_init);
module_exit(s3c2410ts_exit);MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>, ""Ben Dooks <ben@simtec.co.uk>, ""Simtec Electronics <linux@simtec.co.uk>");
MODULE_DESCRIPTION("S3C24XX Touchscreen driver");
MODULE_LICENSE("GPL v2");
本来源码是对的,而新的内核整理者删掉一些东西导致错误。
这告诉我们,遇到问题我们要先大概定位出问题,在尝试解决的办法,今天就到这里吧,晚安了,可怜的程序员。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 彻底掌握网络通信(一)Http协议基础知识
网络通信系列文章序彻底掌握网络通信(一)Http协议基础知识 彻底掌握网络通信(二)Apache的HttpClient基础知识 彻底掌握网络通信(三)Android源码中HttpClient的在不同版本的使用 彻底掌握网络通信(四)Android源码中HttpClient的发送框架解析 彻底掌握网络通信(五)…...
2024/4/18 22:37:21 - PAT乙级 1032题挖掘机技术哪家强
1032. 挖掘机技术哪家强(20)时间限制200 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第1行给出不超过105的正整数N,…...
2024/4/18 5:03:15 - 谈谈PBOC3.0中使用的国密SM2算法
转载请注明出处http://blog.csdn.net/pony_maggie/article/details/39780825作者:小马一 知识准备SM2是国密局推出的一种他们自己说具有自主知识产权的非对称商用密码算法。本身是基于ECC椭圆曲线算法的,所以要讲sm2, 先要弄懂ECC。完全理解ECC算法需要一定的数学功底,因为涉…...
2024/5/6 10:19:01 - Python成长笔记 - 基础篇 (四)函数
1、面向对象:类(class) 2、面向过程:过程(def) 3、函数式编程:函数(def)----python1、函数:http://egon09.blog.51cto.com/9161406/1834777 编程语言中函数定义:函数是逻辑结构化和过程化的一种编程方法。12345678910111213 python中函数定义方法:def test(x): "T…...
2024/5/5 19:23:00 - Scientific.Toolworks.Understand.v3.0.635.Incl.Keygen-Lz0
http://uploaded.net/file/wdvueoow/Scientific.Toolworks.Understand.v3.0.635.Incl.Keygen-Lz0.rar http://ultramegabit.com/file/details/HYBOetzbQ10 https://rapidshare.com/files/3605636066/Scientific.Toolworks.Understand.v3.0.635.Incl.Keygen-Lz0.rar...
2024/4/9 8:38:39 - 史上最牛C语言控制台游戏!C语言控制台音游——Rhythm Slasher! 附上源代码供交流学习
这个游戏是我大一上学期弄出来,刚学C语言,学了循环和选择结构。那时候数据结构都不太会,但是按捺不住自己的想法,总想用现有的东西做点什么。 就连窗体程序都不会,没有任何的图片,全是ASCII字符的一个游戏,我为什么敢说是史上最牛?我感觉牛不在算法上,牛不在精美的界面…...
2024/5/5 4:41:50 - TCPIP协议详解----网络基础知识
计算机网络的发展关于计算机网络的发展不做介绍 , 想要详细了解的同学可以搜索相关资料,进行查看1.协议在计算机网络中我们经常提到协议一词,互联网中具有代表的协议有HTTP、TCP、UDP等等,在平常我们发送一封邮件,或者访问一个网站主页时,我们都需要这些协议来进行交互简…...
2024/4/12 18:52:34 - CSDN知名安卓博主
以下博主没有排名之分,均为优秀博主郭霖 博客地址:https://me.csdn.net/sinyu890807 博客信息包罗万象,如果你没有关注郭霖的微信公众号那真是可惜,很多前沿技术,开头还有最新资讯,让你学习的过程中了解时事。 鸿洋 博客地址:https://me.csdn.net/lmj623565791 个人网站…...
2024/4/15 4:07:40 - 基于BVH驱动的OGRE骨骼动画
摘要:OGRE游戏引擎中的角色动画将模型与骨骼文件进行映射。若想在不借助第三方建模软件重新制作模型和动画的基础上更改现有模型的动作,获取与模型匹配的骨骼数据成为一个难题。提出了一种将标准BVH动作文件解析为XML文件的方法,生成与OGRE模型匹配的骨骼文件,将来源广泛的BVH文…...
2024/4/12 18:52:09 - tslib移植-selected device is not a touchscreen I understand 错误解决
这篇文章必须要写,因为昨天移植了触摸屏的驱动后又移植了tslib,拷到开发板上运行后出现了这个错误,更恐怖的是花了一个晚上的时间,早上来实验室才弄好,网上找了好多这个错误的解决方法,很多都不是蛮详细的,都比较不适合我们新手去看。 不过千辛万苦的是找到了这个博客,…...
2024/4/12 18:52:19 - C语言初学者的小游戏集合框架
#include <stdio.h> #include <stdlib.h> #define CLS system("cls");//刷新缓冲区 #define STP printf("按任意键继续...");/getchar();//需要自己修改/////////////// #define GAME_COUNT 1 // 游戏数量 //自定义添加函数 void cal…...
2024/4/12 18:52:19 - 知乎文章如何复制下来
这篇文章只是为了大家看到好的文章想将其中一段或一篇保存下来自己欣赏,别用做商业什么用途,和本人无关哈!!其实原来因为转载别人博客用的方法,今天在知乎上看到一篇触动很大的文章,特别想拷贝下来,于是试了一下这个方法,结果成功了。戳这里链接就是转载方式了,需要注…...
2024/5/6 18:16:52 - c语言模拟扫雷小游戏
扫雷游戏的原理很简单,我用c语言简单做了一个模拟程序,在获取雷数的时候可能比较繁琐,还有没有简单明了写法,求高手指导。代码附上:#include <stdio.h> #include <windows.h> #define M 10 #define N 10 #define MAX (M*N) #define MINE "▲" #def…...
2024/4/13 3:50:27 - Oracle存储过程(附带SQL语句完整过程及示例)
前言:转载请附上连接,本帖原创请勿照抄。存储过程用于完成特定功能的SQL语句集合,编译完后存储在数据库中,不同的程序在执行同一个SQL的时候可以直接调用存储过程无需重新写sql语句。优点: 模块化程序、需只要调用无需传输SQL,加快SQL执行速度,提高安全性,减少流量,提高可移…...
2024/4/12 18:52:14 - 关于configparser包下的ConfigParser类
此模块用于读取基于windows环境下的.ini格式配置文件。ini格式如下:[section]name1=value1name2=value2[section2]name3:value3name4:value4section是自己定义的名字,下面是它的变量赋值1、创建一个实例:from configparser import ConfigParser cf=ConfigParser([defaults[,…...
2024/4/30 10:07:29 - 如何查看自己点赞的文章呢?
如何查看自己点赞过的文章呢?csdn网站有这个功能吗?...
2024/4/12 18:52:24 - Scientific.Toolworks.Understand.v3.0.635.X64.Incl.Keygen-Lz0
http://uploaded.net/file/4cfutg8u/Scientific.Toolworks.Understand.v3.0.635.X64.Incl.Keygen-Lz0.rar http://ultramegabit.com/file/details/TL1SNMIaIxM https://rapidshare.com/files/2483034945/Scientific.Toolworks.Understand.v3.0.635.X64.Incl.Keygen-Lz0.rar...
2024/4/12 18:52:24 - 通信行业基础知识大全
因本人从事通信行业,现整理一些通信相关的知识,以便与大家互相学习使用。1. 请描述光缆、光缆段、光纤芯之间的关系?答:两个网元之间的连通,通过光纤进行连接,光缆是在光缆中的,因为两个网元之间距离太远,一条光缆不够长,所以就要用到多段光缆,多段光缆通过融纤连接…...
2024/4/17 16:07:48 - Spring Data Jpa 配合MongoDB实现持久层对象属性动态增加
MongoDB作为NOSQL数据库,基于文档存储这一特性,使得存储对象没有像关系型数据库有着约束。例如,当我们使用MySQL作为数据库,当我们想要增加持久层Entity属性时(所增加的属性,必须存储在数据库的情况,除非所增加的属性,不做为存储,只是持久层Entity临时的属性),不得不…...
2024/4/20 13:52:34 - 我的CSDN博客十年
一不留神,已经在CSDN写了十年的博客(http://blog.csdn.net/wireless_com)。2008年10月18日,自己在CSDN落下文字,本想在今年10月18日梳理一下十年的足迹,但备战双十一太忙了,只留下一张截图,文字一直拖到现在。最早写博客是在2004年左右,所谓的web2.0时代,博客开始兴起…...
2024/4/5 1:05:46
最新文章
- 如何全面规避医疗数据安全风险?“一中心三大管控域”打开新思路!
作为医院的核心基础设施,数据库已然演变成了一种具有“资产”属性的重要元素。而随着不断变化的医疗业务场景和日趋严格的合规性要求,如何让安全全方位贯穿医疗数据的生命周期,是一项系统性的建设工作,难点诸多。 基于多年的数据…...
2024/5/7 8:20:02 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/6 9:38:23 - 【前缀合】Leetcode 寻找数组的中心下标
题目解析 724. 寻找数组的中心下标 算法讲解 我们使用一个前缀和数组,一个后缀和数组 class Solution { public:int pivotIndex(vector<int>& nums) {// lsum[i] 表⽰:[0, i - 1] 区间所有元素的和// rsum[i] 表⽰:[i 1, n - …...
2024/4/30 2:23:40 - 阿里云8核32G云服务器租用优惠价格表,包括腾讯云和京东云
8核32G云服务器租用优惠价格表,云服务器吧yunfuwuqiba.com整理阿里云8核32G服务器、腾讯云8核32G和京东云8C32G云主机配置报价,腾讯云和京东云是轻量应用服务器,阿里云是云服务器ECS: 阿里云8核32G服务器 阿里云8核32G服务器价格…...
2024/5/6 18:16:31 - MATLAB 自定义中值滤波(54)
MATLAB 自定义中值滤波(54) 一、算法介绍二、算法实现1.原理2.代码一、算法介绍 中值滤波,是一种常见的点云平滑算法,改善原始点云的数据质量问题,MATLAB自带的工具似乎不太友好,这里提供自定义实现的点云中值滤波算法,具体效果如下所示: 中值滤波前: 中值滤波后:…...
2024/5/5 8:43:14 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/7 5:50:09 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/4 23:54:56 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/6 9:21:00 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/4 23:55:16 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/4 23:55:06 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/6 21:42:42 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57