CN101645023A - 嵌入式系统延迟响应解决方法及装置 - Google Patents
嵌入式系统延迟响应解决方法及装置 Download PDFInfo
- Publication number
- CN101645023A CN101645023A CN 200910306957 CN200910306957A CN101645023A CN 101645023 A CN101645023 A CN 101645023A CN 200910306957 CN200910306957 CN 200910306957 CN 200910306957 A CN200910306957 A CN 200910306957A CN 101645023 A CN101645023 A CN 101645023A
- Authority
- CN
- China
- Prior art keywords
- button
- thread
- signalling
- embedded system
- obtains
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明公开了一种嵌入式系统延迟响应解决方法及装置,所述嵌入式系统包括按键获取线程和按键处理线程,所述按键获取线程用于接收和保存按键信号,并在所述按键处理线程空闲时将所保存的按键信号传输至所述按键处理线程;所述按键处理线程用于处理所述按键获取线程传输的按键信号,并在处理完当前按键信号、且无新的按键信号时进入空闲状态。应用本发明所述的方法,可以解决嵌入式系统按键响应程序相对于用户按键的迟滞问题,提高嵌入式系统应用产品的性能,提升用户体验效果。
Description
技术领域
本发明涉及一种嵌入式系统延迟响应的解决方法及装置,尤其是涉及一种嵌入式系统按键延迟响应的解决方法,属于嵌入式系统应用技术领域。
背景技术
目前,嵌入式系统在机顶盒、数字电视机、家庭网络设备等消费类电子领域得到广泛的应用。与通用计算机系统相比,嵌入式系统具有专业性强、实时性好、功耗低等优点。由于消费类电子占用的资源通常较多,需要实现的功能较为强大,而嵌入式系统内存资源有限、CPU响应速度较慢,因此,具有嵌入式系统的消费类电子产品的按键响应速度总是跟不上用户的按键速度,尤其是在用户重复多次按同一键时,造成极大的延迟响应问题,导致系统当前响应与用户最新要求不一致,严重影响用户的体验效果。为解决嵌入式系统的延迟响应问题,现有很多产品采用了丢弃按键的方法。该方法虽然能够在一定程度上解决按键延迟响应的问题,但又造成多次按键“不知所踪”、实现不了用户实际按键功能要求,同样影响用户的体验效果。
发明内容
本发明的目的在于提供一种嵌入式系统延迟响应解决方法,以解决嵌入式系统按键响应程序相对于用户按键的迟滞问题,提高嵌入式系统应用产品的性能,提升用户体验效果。
为解决上述技术问题,本发明采用以下技术方案予以实现:
一种嵌入式系统延迟响应解决方法,其特征在于,所述嵌入式系统包括按键获取线程和按键处理线程;
所述按键获取线程用于接收和保存按键信号,并在所述按键处理线程空闲时将所保存的按键信号传输至所述按键处理线程;
所述按键处理线程用于处理所述按键获取线程传输的按键信号,并在处理完当前按键信号、且无新的按键信号时进入空闲状态。
根据本发明,所述按键获取线程在保存有按键信号后,发出读取数据请求,所述按键处理线程在获得所述读取数据请求后,读取所述按键获取线程保存的按键信号,以实现线程的同步及数据的安全访问。
根据本发明,所述按键获取线程保存的按键信号包括按键的键值及按键次数。
根据本发明,所述按键获取线程接收和保存按键信号的过程为:
在判断有按键按下时,获取当前按下的按键的键值,并判断是否为第一次按键;
若为第一次按键,则保存所述当前按键的键值,并置按键次数为1;若不是第一次按键,则判断所述当前按键的键值是否与前次按键的键值相同;
在所述当前按键的键值与前次按键的键值相同时,将按键次数加1;在所述当前按键的键值与前次按键的键值不相同时,保存当前按键的键值,并置按键次数为1。
根据本发明,所述按键获取线程接收和保存按键信号的过程还包括:在判断没有按键按下时,延时一定时间后,再继续扫描按键,判断是否有按键按下。
根据本发明,所述按键获取线程优选采用信号量实现线程同步,具体为:在所述按键获取线程保存有按键信号后,所述按键获取线程挂起所述信号量,发出读取数据请求;所述按键处理线程获得所述按键获取线程有信号量挂起,则读取所述按键获取线程所保存的按键信号。
优选的,所述信号量的值与所述按键获取线程保存的按键次数相对应。
根据本发明,所述按键处理线程在获得所述按键获取线程有信号量挂起时,先将所述信号量复位,然后再读取所述按键获取线程所保存的按键信号。
本发明还提供了一种嵌入式系统延迟响应解决装置,所述装置包括按键获取单元和按键处理单元;所述按键获取单元用于接收和保存按键信号,并将所保存的按键信号传输至所述按键处理单元,包括顺序连接的按键扫描模块、按键类型判断模块及按键缓冲模块;所述按键处理单元用于处理所述按键获取单元传输的按键信号,包括顺序连接的按键信号获取模块和按键处理模块。
根据本发明,所述装置还包括用于所述按键获取单元和所述按键处理单元同步的线程同步模块,所述线程同步模块一端连接所述按键缓冲模块,另一端连接所述按键信号获取模块。
与现有技术相比,本发明的优点和积极效果是:通过在嵌入式系统中设置按键获取线程和按键处理线程两个线程,在按键处理线程处理按键时,由按键获取线程接收并保存用户按键信号,并在按键处理线程处理完毕当前按键后,将所保存的用户按键信号一次性提交至按键处理线程进行处理,能保证按键响应的相对及时,使得嵌入式系统按键响应速度与用户按键要求保持高度一致,一定程度上解决了按键响应延迟于用户按键的问题。
附图说明
图1是本发明嵌入式系统延迟响应解决方法一个实施例中按键获取线程的工作流程图;
图2是与图1实施例的按键获取线程相对应的按键处理线程的工作流程图;
图3是本发明嵌入式系统延迟响应解决装置一个实施例的结构框图。
具体实施方式
下面结合附图对本发明作进一步详细的说明。
本发明为解决嵌入式系统延迟响应的问题,针对嵌入式系统的特点,提出了两线程的解决方法,具体为:包括按键获取线程和按键处理线程,其中,所述按键获取线程用于接收和保存按键信号,所述按键处理线程用于处理所述按键获取线程传输的按键信号。在按键处理线程处理按键过程中,由按键获取线程接收、保存在这段时间内接收的按键信号,并在所述按键处理线程空闲时将所保存的按键信号一次性全部传输至所述按键处理线程进行处理,减少了按键等待处理的时间,且不易丢弃按键,一定程度上解决了按键延迟响应的问题。而按键处理线程在处理完当前按键信号、且无新的按键信号输入时进入空闲状态,等待新的按键信号的到来,并出让CPU资源。
此外,为保证两线程的同步及数据访问的安全性,采用同步及数据安全访问处理机制,所述按键获取线程在保存有新的按键信号后,向所述按键处理线程发出读取数据的请求;所述按键处理线程在获得所述读取数据请求后,再读取所述按键获取线程保存的按键信号。同步及数据安全访问处理机制可以根据嵌入式系统的性能及其所应用产品的特点采取不同的方式,如信号量方式、变量查询方式等。
图1示出了本发明嵌入式系统延迟响应解决方法一个实施例中按键获取线程的工作流程图,图2则示出了所述实施例中按键处理线程的工作流程图,所述实施例采用信号量方式实现线程同步与数据安全访问。下面结合流程图1和流程图2对该实施例的延迟响应解决方法进行详细的阐述。
所述实施例中的按键获取线程流程包括下述各步骤:
步骤S101:按键获取线程流程开始。
步骤S102:按键获取线程扫描按键。
步骤S103:根据扫描结果判断是否有键按下。若有键按下,执行步骤S105;若没有键按下,执行步骤S104。
步骤S104:在没有按键按下时,延时10ms后,转至步骤S102继续扫描按键。延时时间可以根据实际情况来设定。
步骤S105:在有键按下时,获取按键的键值。
步骤S106:判断当前按键是否为第一次按键。若是第一次按键,执行步骤S107,否则转至步骤S108。
步骤S107:保存新的按键的键值,也即当前按键的键值,并置按键次数值为1,将保存的按键键值及按键次数保存在缓冲区内,然后执行步骤S110。
步骤S108:在判断当前按键不是第一次按键时,判断当前按键键值是否与前次按键键值相同。若相同,执行步骤S109;如不相同,转至步骤S107,保存新的按键的键值,并置与所述键值对应的按键次数为1。
步骤S109:在当前按键键值与前次按键键值相同时,不改变所保存的按键的键值,而只将与所保存的按键键值相对应的按键次数加1,然后执行步骤S110。
步骤S110:在按键获取线程保存有包括按键键值及按键次数的按键信号后,所述按键获取线程将挂起信号量,向按键处理线程发出读取数据的请求。所述信号量的初始值为零,其值根据按键获取线程保存的按键次数而变化,例如,信号量的值等于按键次数值,按键次数值改变,信号量的值相应地变化。
上述流程是按键获取线程在按键处理线程处理按键的时间段内所执行的操作的概括。一般而言,如果按键处理线程处于等待状态,在按键获取线程获得一次按键后,即可挂起信号量,通知按键处理线程读取按键信号进行处理,不会存在按键次数累加的过程。而只有在按键处理线程处理按键的过程中,用户执行了同一个按键的多次操作,则按键获取线程将保存在按键处理线程处理按键的时间内最后接收的按键键值及按键次数,并挂起信号量等待按键处理线程读取按键信号。考虑到用户在操作不同按键时,本身存在一定的操作时间,这段操作时间足够按键处理线程来响应,也就是说,按键处理线程对用户不同按键的操作基本没有响应延迟。而用户如果对同一个按键连续操作多次,操作时间较短,容易造成延迟响应。因此,针对该现状,所述实施例的按键获取线程采取了在按键类型发生变化时,只保留最新的按键及其次数,处理过程简单,占用系统资源较少,且能够解决系统对按键延迟响应的问题。
所述实施例中的按键处理线程流程包括下述各步骤:
步骤S201:按键处理线程流程开始。
步骤S202:等待按键获取线程的信号量挂起。
步骤S203:判断是否有信号量挂起。如果有信号量挂起,执行步骤S204;若没有信号量挂起,转至步骤S202继续等待。在该实施例中,是判断所述信号量的值是否大于等于1,只有在信号量的值大于等于1时,才会进行按键处理过程。
步骤S204:在有信号量挂起时,首先将挂起的信号量复位,以表明已经处理该次按键事件。在该实施例中,由于定义了信号量的初始值是零,所以是执行将信号量清零的操作。
步骤S205:从所述按键获取线程读取按键键值及按键次数。
步骤S206:调用相应的按键处理程序一次性处理按键。
步骤S207:按键处理线程流程结束。
需要说明的是,上述按键处理线程是以一次处理过程为例作了介绍,实际处理过程中,在按键处理线程处理执行完一次按键处理过程后,会继续等待信号量挂起,即等待信号量的值大于等于1,在等待的时间内,将出让嵌入式系统CPU资源。
图3示出了本发明嵌入式系统延迟响应解决装置一个实施例的结构框图,该实施例延迟响应解决装置与图1和图2所示实施例的嵌入式系统延迟响应解决方法相对应。
所述实施例的延迟响应解决装置包括用于接收和保存按键信号的按键获取单元及用于处理所述按键获取单元传输的按键信号的按键处理单元。
所述按键处理单元包括顺序连接的按键扫描模块、按键类型判断模块及按键缓冲模块。按键扫描模块用于扫描按键,判断是否有按键按下。在按键扫描模块判断有按键按下时,按键类型判断模块将判断按键的类型,获取按键键值及与所述按键键值对应的按键次数,然后将按键键值及按键次数传至按键缓冲模块中保存。
所述按键处理单元包括顺序连接的按键信号获取模块和按键处理模块,所述按键信号获取模块从所述按键缓冲模块中读取保存的按键键值及按键次数,按键处理模块根据按键获取模块所获取的按键信号对按键进行处理,实现相应的按键功能。
所述实施例为保证按键获取单元与按键处理单元之间的同步及两者之间数据访问的安全性,还设置了线程同步模块,所述线程同步模块一端连接所述按键缓冲模块,另一端连接所述按键信号获取模块。所述线程同步模块根据所述按键缓冲模块保存的按键信号,设置相应的线程同步信号,如信号量,控制所述按键信号获取模块从所述按键缓冲模块中读取按键信号。
当然,以上所述仅是本发明的一种优选实施方式而已,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种嵌入式系统延迟响应解决方法,其特征在于,所述嵌入式系统包括按键获取线程和按键处理线程;
所述按键获取线程用于接收和保存按键信号,并在所述按键处理线程空闲时将所保存的按键信号传输至所述按键处理线程;
所述按键处理线程用于处理所述按键获取线程传输的按键信号,并在处理完当前按键信号、且无新的按键信号时进入空闲状态。
2.根据权利要求1所述的嵌入式系统延迟响应解决方法,其特征在于,所述按键获取线程在保存有按键信号后,发出读取数据请求,所述按键处理线程在获得所述读取数据请求后,读取所述按键获取线程保存的按键信号,以实现线程的同步。
3.根据权利要求2所述的嵌入式系统延迟响应解决方法,其特征在于,所述按键获取线程保存的按键信号包括按键的键值及按键次数。
4.根据权利要求3所述的嵌入式系统延迟响应解决方法,其特征在于,所述按键获取线程接收和保存按键信号的过程为:
在判断有按键按下时,获取当前按下的按键的键值,并判断是否为第一次按键;
若为第一次按键,则保存所述当前按键的键值,并置按键次数为1;若不是第一次按键,则判断所述当前按键的键值是否与前次按键的键值相同;
在所述当前按键的键值与前次按键的键值相同时,将按键次数加1;在所述当前按键的键值与前次按键的键值不相同时,保存当前按键的键值,并置按键次数为1。
5.根据权利要求4所述的嵌入式系统延迟响应解决方法,其特征在于,所述按键获取线程接收和保存按键信号的过程还包括:在判断没有按键按下时,延时一定时间后,再继续扫描按键,判断是否有按键按下。
6.根据权利要求3至5中任一项所述的嵌入式系统延迟响应解决方法,其特征在于,所述按键获取线程采用信号量实现线程同步;在所述按键获取线程保存有按键信号后,所述按键获取线程挂起所述信号量,发出读取数据请求;所述按键处理线程获得所述按键获取线程有信号量挂起,则读取所述按键获取线程所保存的按键信号。
7.根据权利要求6所述的嵌入式系统延迟响应解决方法,其特征在于,所述信号量的值与所述按键获取线程保存的按键次数相对应。
8.根据权利要求6所述的嵌入式系统延迟响应解决方法,其特征在于,所述按键处理线程在获得所述按键获取线程有信号量挂起时,先将所述信号量复位,然后再读取所述按键获取线程所保存的按键信号。
9.一种嵌入式系统延迟响应解决装置,其特征在于,所述装置包括按键获取单元和按键处理单元;所述按键获取单元用于接收和保存按键信号,并将所保存的按键信号传输至所述按键处理单元,包括顺序连接的按键扫描模块、按键类型判断模块及按键缓冲模块;所述按键处理单元用于处理所述按键获取单元传输的按键信号,包括顺序连接的按键信号获取模块和按键处理模块。
10.根据权利要求9所述的嵌入式系统延迟响应解决装置,其特征在于,所述装置还包括用于所述按键获取单元和所述按键处理单元同步的线程同步模块,所述线程同步模块一端连接所述按键缓冲模块,另一端连接所述按键信号获取模块。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910306957 CN101645023B (zh) | 2009-09-14 | 2009-09-14 | 嵌入式系统延迟响应解决方法及装置 |
PCT/CN2010/075478 WO2011029351A1 (zh) | 2009-09-14 | 2010-07-27 | 嵌入式系统延迟响应解决方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910306957 CN101645023B (zh) | 2009-09-14 | 2009-09-14 | 嵌入式系统延迟响应解决方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101645023A true CN101645023A (zh) | 2010-02-10 |
CN101645023B CN101645023B (zh) | 2012-08-22 |
Family
ID=41656917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910306957 Active CN101645023B (zh) | 2009-09-14 | 2009-09-14 | 嵌入式系统延迟响应解决方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101645023B (zh) |
WO (1) | WO2011029351A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011029351A1 (zh) * | 2009-09-14 | 2011-03-17 | 青岛海信宽带多媒体技术有限公司 | 嵌入式系统延迟响应解决方法及装置 |
CN102541549A (zh) * | 2011-12-23 | 2012-07-04 | 深圳Tcl新技术有限公司 | 集成电视应用模块的方法及装置 |
CN106303742A (zh) * | 2016-07-26 | 2017-01-04 | 深圳Tcl数字技术有限公司 | 面板按键操作的响应方法及装置 |
CN106371820A (zh) * | 2016-08-21 | 2017-02-01 | 乐视控股(北京)有限公司 | 一种按键响应方法、装置及移动终端 |
CN106648911A (zh) * | 2016-11-28 | 2017-05-10 | 武汉斗鱼网络科技有限公司 | 一种按键除抖的方法及装置 |
CN107231156A (zh) * | 2016-03-23 | 2017-10-03 | 浙江正泰电器股份有限公司 | 按键扫描方法和低压电器的控制器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6654781B1 (en) * | 1998-12-11 | 2003-11-25 | International Business Machines Corporation | Enhanced thread processing |
CN100498683C (zh) * | 2003-12-26 | 2009-06-10 | 北京理工大学 | 计算机网络界面的管理方法 |
CN101276296B (zh) * | 2007-03-29 | 2011-03-09 | 上海新跃仪表厂 | 一种在嵌入式计算机系统上实现消息响应机制的方法 |
CN101645023B (zh) * | 2009-09-14 | 2012-08-22 | 青岛海信宽带多媒体技术有限公司 | 嵌入式系统延迟响应解决方法及装置 |
-
2009
- 2009-09-14 CN CN 200910306957 patent/CN101645023B/zh active Active
-
2010
- 2010-07-27 WO PCT/CN2010/075478 patent/WO2011029351A1/zh active Application Filing
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011029351A1 (zh) * | 2009-09-14 | 2011-03-17 | 青岛海信宽带多媒体技术有限公司 | 嵌入式系统延迟响应解决方法及装置 |
CN102541549A (zh) * | 2011-12-23 | 2012-07-04 | 深圳Tcl新技术有限公司 | 集成电视应用模块的方法及装置 |
CN102541549B (zh) * | 2011-12-23 | 2015-08-19 | 深圳Tcl新技术有限公司 | 集成电视应用模块的方法及装置 |
CN107231156A (zh) * | 2016-03-23 | 2017-10-03 | 浙江正泰电器股份有限公司 | 按键扫描方法和低压电器的控制器 |
CN106303742A (zh) * | 2016-07-26 | 2017-01-04 | 深圳Tcl数字技术有限公司 | 面板按键操作的响应方法及装置 |
WO2018018684A1 (zh) * | 2016-07-26 | 2018-02-01 | 深圳Tcl数字技术有限公司 | 面板按键操作的响应方法及装置 |
CN106303742B (zh) * | 2016-07-26 | 2019-11-05 | 深圳Tcl数字技术有限公司 | 面板按键操作的响应方法及装置 |
CN106371820A (zh) * | 2016-08-21 | 2017-02-01 | 乐视控股(北京)有限公司 | 一种按键响应方法、装置及移动终端 |
CN106648911A (zh) * | 2016-11-28 | 2017-05-10 | 武汉斗鱼网络科技有限公司 | 一种按键除抖的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2011029351A1 (zh) | 2011-03-17 |
CN101645023B (zh) | 2012-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101645023B (zh) | 嵌入式系统延迟响应解决方法及装置 | |
CN103197968B (zh) | 一种融合同步异步特点的线程池处理方法及系统 | |
US8310969B2 (en) | Mobile device and power saving method thereof | |
WO2022033425A1 (zh) | 非连续发送方法、信号发送处理方法及相关设备 | |
CN102801737B (zh) | 一种异步网络通信方法及装置 | |
CN108052390B (zh) | 基于线程阻塞的内存清理方法、移动终端及可读存储介质 | |
CN105743815B (zh) | 抖动缓冲数据处理的方法和装置 | |
CN101686176A (zh) | 一种报文发送、接收的方法及装置 | |
CN109218227B (zh) | 一种网络数据包处理方法和装置 | |
WO2006047781A2 (en) | Power saving when using aggregated packets | |
CN112399211B (zh) | 一种操作方法及融合网关 | |
CN109803360A (zh) | WiFi休眠控制方法、装置、电子设备及存储介质 | |
WO2019128586A1 (zh) | 应用程序处理方法、电子设备、计算机可读存储介质 | |
CN106550021B (zh) | 推送消息的推送方法及装置 | |
CN109800201B (zh) | 基于linux的RS485实时收发控制的驱动方法 | |
CN107025118B (zh) | 结束应用程序的方法及装置 | |
CN100502388C (zh) | 边界网关协议模块路由处理方法 | |
CN103312869A (zh) | 移动终端待解屏待机状态转换方法及系统 | |
CN109766347B (zh) | 一种数据更新方法、装置、系统、计算机设备及存储介质 | |
CN103096159B (zh) | 数字电视数据传输方法及系统 | |
US9152207B2 (en) | System for reducing dynamic power consumption of wakeup source | |
CN101593046A (zh) | 一种滚球的实现方法 | |
CN114173291A (zh) | 数据处理方法和装置 | |
EP3691346B1 (en) | Modem and communication method | |
CN102104804A (zh) | 一种网络电视的同步控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |