03
2017
01

Delphi中如何使右侧的滚动条自动拖到底端以显示 RichEdit 最新添加的文本

 加在OnChange事件中:

卷屏到光标处 

 SendMessage(RichEdit1.Handle, EM_SCROLLCARET, 0, 0); 
向下卷屏一行 
 SendMessage(RichEdit1.Handle, EM_SCROLL, SB_LINEDOWN, 0) 
向下卷屏到底 
 SendMessage(RichEdit1.Handle, WM_VSCROLL, SB_BOTTOM, 0) 
参见 MSDN 的 WM_VSCROLL

27
2016
06

嵌入式实时操作系统UCOS原理与实践—卢友亮_第一章

第一章实时操作系统基础

1.操作系统的基本功能五个部分:cpu管理、任务管理、内存管理、文件管理、IO管理。

任务管理:任务是程序的一次执行。任务分为系统任务和用户任务。系统任务是操作系统本身的任务,如操作系统的主程序,时钟中断服务程序,后面讲到的空闲任务和统计任务。用户任务是用户应用程序的执行。

CPU管理:多任务OS对CPU的分配,哪个任务在运行,占有CPU.

内存管理:内存是任务的生存空间,内存管理用于给任务分配内存空间,相应的,在任务结束后释放内存空间。

文件管理:实现对文件的统一管理,是对文件存储器的存储空间进行组织、分配和回收,负责文件的存储、检索、共享和保护。从用户角度看,文件管理主要是实现“按名取存。

IO管理:管理系统中的各种硬件设备,如打印机、显示器、硬盘灯。用户应用程序调用I/O设备管理模块提供的API来对设备进行操作,而不是直接读/写硬件。

2.实时操作系统:Real Time Operating System. RTOS.是指当外界时间或数据发生时,能够接收并以足够快的速度予以处理,其处理的结果又能在规定的时间内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务调度、一直运行的操作系统。

3.任务状态:为了管理和调度任务,必须为任务设置多个状态。任务具有5种状态:睡眠态、就绪态、运行态、阻塞态、挂起态。

睡眠态:任务已经被装入内存了,可是并没有准备好运行。在调用OSTaskCreate(任务创建函数)创建之前,处于睡眠状态。睡眠状态的任务是不会得到运行的,操作系统也不会给其设置为运行而准备的数据结构。因为没有给其配置任务控制块。

就绪态:操作系统调用OSTaskCreate创建一个任务后,任务就进入就绪态。操作系统已经为其运行配置好了任务控制块等数据结构,当没有比其优先级更高的任务,或比其优先级更高的任务处阻塞状态的时候,就能够被操作系统调度而进入运行态。操作系统是调用任务切换函数完成的。

运行态:任务因为OSTimeDly,进入阻塞态。而中断的到来会使任务进入挂起态。

阻塞态:当任务在等待某些还没有被释放的资源或等待一定的时间的时候,要阻塞起来,等到条件满足的时候再重新回到就绪态,又能被操作系统调度以进入运行态,这是实时操作系统要实现的功能之一。

挂起态:当任务在运行时,因为有中断的发生,如定时器中断每个时钟滴答中断一次,被剥夺CPU的使用权而进入挂起态。在中断返回的时候,若该任务还是最高优先级的,则恢复运行态,如果不是这样,只能回到就绪态。、

任务在各种状态之间转换,有一个非常重要的词—Context Switch.即上下文切换或者叫任务切换。

在操作系统移植的时候,任务切换代码就是必须要实现的部分之一。

 

可重入函数和不可重入函数:

同一个代码可以运行为不同的任务,不同的任务又可以调用相同的函数我们不能考虑为每个任务都写一个屏幕打印程序,却需要每个打印程序都运行正确,无论系统中有多少个任务在执行。

在实时多任务操作系统中,任务应该调用可重入函数,可重入函数是任务中的一个重要概念。

1.4基于优先级的可剥夺内核。

比较好的系统,内核占用2%-5%CPU的负担。

uC/OS使用的是一种基于优先级的可剥夺型内核。

64个任务(V2.80以上为256个任务)

不可剥夺内核是任务一旦获得了CPU的使用权,如果不将自己阻塞,将一直运行。而不管是否有更紧迫的任务(优先级更高的任务)在等待(高优先级的任务已经进入了就绪状态)。就算发生了中断,也只让中断服务程序运行,不论中断服务程序是否创建了更高优先级的任务,也要返回到原任务运行。

可剥夺型内核调度下,在中断服务程序中就绪了更高优先级的任务B,中断返回后因为优先级更高,所以获得了CPU控制权得到运行。任务B运行结束后,任务A才得到运行。可剥夺型呢黑采用的抢占式的调度策略,总是让优先级更高的任务运行,知道其阻塞或完成,任务的响应时间因此是优化的。因为操作系统总是以时钟中断服务程序作为其调度的手段,而时钟中断时间是可知的,高优先级任务的运行时间也是可知的,因此适合于实时操作系统。

1.5同步与通信

任务是独立的,但是任务之间又有着各种各样的关系,以成为一个整体,来完成某一项工作。有时候,一个任务完成的前提是需要另一个任务给出结果,任务之间的这种制约性的合作运行机制成为任务间的同步。

对于共享资源的访问,就要有排他性。为解决这个问题,又引出操作系统的很多基本概念,如互斥、信号量、临界区、消息等概念。多个任务没有很好地同步的情况下,操作系统很可能产生死锁。

操作共享资源的时候要进入临界区。在进入临界区访问共享资源之前,采用关中断、给调度器上锁或使用信号量的方法,达到互斥的目的。

如A任务写缓冲区,B任务读缓冲区。A任务写完缓冲区这个事件之后。操作系统是这样做的,A任务写完缓冲区后需滴啊用如OSSemPost()这样的函数,释放缓冲区资源。在该函数中,发现有任务B在排队等待缓冲区的资源,于是调用任务切换函数将CPU给B,达到了任务间的无缝同步。

事件处理的对象主要有信号量、互斥性信号量、事件标志组、邮箱、消息队列。

信号量的取值范围是16位的二进制整肃。0-65535.三种操作,建立,请求,释放。OSSemPend()函数请求信号量,信号量大于0,然后信号量--。OSSemPost()函数释放信号量,信号量++。

A、B两个任务通过信号量同步,具体过程如下:

首先创建信号量S,因为该缓冲区本质上是全局的一个数组,属于临街资源,因此设置信号量的初始值为1.另外,该信号量使用一个事件控制块。

A任务请求信号量S,做Pend操作。因为信号量S=1,所以请求得到满足,Pend操作中将S减1,s的值变为0.任务A继续执行,访问缓冲区。

任务A在执行过程中因为其他的时间而阻塞,任务B得到运行,要访问缓冲区。任务B请求信号量S,做Pend操作。因为信号量S=0,所以请求不能得到满足,任务B只能阻塞,S的值保持为0.但在信号量S所使用的事件控制中,标志了时间B在等待信号量S的信息。

任务A在条件满足时继续执行,访问缓冲区完成后,做Post操作释放缓冲区,Post操作中将S加1,S的值变为1.在Post操作中,由于事件控制块中,标记了事件B在等待信号量S的信息,且我们设置任务B有更高的优先级,操作系统调用任务切换函数,切换到任务B运行,使任务B获得信号量,访问任务A写好的缓冲区。

任务B访问完成,再释放该信号量,任务A又可以访问该缓冲区了。

1.5.6互斥信号量

互斥信号量是一种特殊的信号量,这不仅在于该信号量只有用于互斥资源的访问,还在于使用互斥信号量管理需要解决优先级反转的问题。

假设系统中有3个任务,分别是高优先级、中优先级和低优先级。当低优先级的任务在运行的时候访问互斥资源,而中优先级的任务运行时将使低优先级的任务得不到裕兴而死抱着资源不放。这时,高优先级的任务开始运行的时候,必须等到中优先级的任务运行完成,然后等低优先级的任务访问资源完成才行。如果在低优先级的任务访问资源的过程中又有中优先级的任务运行,那么高优先级的任务只有继续等到。这种情况就是优先级反转。

在uC/OS-II对互斥信号量的管理中,针对这个问题采用了优先级继承机制。优先级继承机制是一种对占用资源的任务的优先级进行升级的机制,用以优化系统的调度。例如,当前的任务的优先级是比较低的。高优先级的任务请求互斥信号量的时候因为信号量已被占有,所以阻塞。这时有中优先级的任务就绪。如果不采用优先级继承,那么高优先级的任务是竞争不过中优先级的任务的。采用优先级继承机制,将占有资源的低优先级的任务临时设置为一个很高的优先级,允许其在占有资源的时候临时获得特权,先于中优先级任务完成,在范文互斥资源结束又回到原来的优先级,这样高优先级的任务就会先于中优先级的任务运行,解决的这个问题。

1.5.7事件标志组

在信号量和互斥信号量的管理中,任务请求资源,如果资源未被占用就可继续运行,否则只能阻塞,等待资源释放的事件发生。这种事件是单一的事件。如果任务要等待多个事件的发生,或多个事件中的某一个事件的发生就可以继续运行,那么就应该采用事件标志组管理。

事件标志组管理的条件组合可以是多个事件都发生,也可以是多个事件中有任何一个事件发生。尤其特别的是,还可以是多个事件都没有发生货多多个事件有任何一个事件都没有发生。

1.5.8消息邮箱和消息队列

邮箱和信号量都保存在事件控制块中,对于他们的操作和处理也是类似的。

假设A写缓冲区,B读缓冲区,但缓冲区是A创建的,B并不知道它在哪里,但是B知道缓冲区的类型是10个字节长的数组。现在就应该采用消息而不是信号量来完成这次同步和通信。可以简单描述如下:

任务A创建缓冲区,写缓冲区,发消息。

任务B请求消息,如果邮箱里没有消息,就把自己阻塞,如果有,就读取消息。

任务B最终读取消息后,根据邮箱里的地址读取缓冲区。

消息队列(Message Queue)也用于给任务发消息。但它是由多个消息邮箱组合形成的,是消息邮箱的集合,实质上是消息邮箱的队列。一个消息邮箱只能容纳一条消息,采用消息队列,一是可以容纳多条消息,而是消息是有序的。

消息对垒由于存储多条消息,因此其设计比信号量和消息略为复杂,但也同样是采用事件控制快呢来只是消息的位置和标记等待消息的任务。不同的是,消息队列自身有消息控制块这样的数据结构,事件控制块中指示的不再是消息的地址,而是消息控制块的地址,使用消息控制块可以采用先进先出的方式管理多条消息。

1.6 中断和时钟

当任务A在运行的时候,由于中断的到来,操作系统先保存任务A当前的运行环境,接着进入中断服务程序,在中断服务程序后,由于采用可剥夺型内核,如果A仍是优先级最高的人任务,就恢复A运行的环境,继续运行A,否则将运行一个更高优先级的任务。

在uC/OS中,通过对硬件的设置,实在10-200ms的时间间隔内产生一次时钟中断,在该时钟中断服务程序中,对岩石的任务进行延时技术,检查系统中是否有高优先级的任务就绪而没有得到运行,响应进行任务调度。因为,如果没有时钟中断服务,就没有多任务操作系统的任务调度,也谈不上实时。我们把这种周期性中断成为时钟节拍,对应的中断服务程序成为时钟中断服务程序。

1.7内存管理

嵌入式系统中,内存资源是十分宝贵的。在uC/OS-II中,采用分区的方式管理内存,即将连续的大块内存按分区来管理,每个系统中有数个这样的分区,每个分区又包含数个内存块,每个内存块大小相同。块,每个内存块大小相同。块,每个内存块大小相同。

采用内存控制块来管理内存。内存控制块记录了内存分区的地址、分区中内存块的大小和数量,以及空闲块的数量等消息内存管理包含了内存分区的创建、分配、释放、使用和等待系统调用。

 


15
2016
02

uC/OS-II多任务切换原理

     uC/OS-II首先完成操作系统的初始化和所有任务的初始化。TCB(任务控制块),ECB(事件控制块),内存。

     uC/OS-II凭借着独特的延时(其实此时会去多任务切换,然后运行就绪的任务)和滴答中断(对每个等待的任务真延时并判断是否到了延时,如果到了为就绪切换运行)来完成多任务的运行。空闲任务始终处于就绪状态并且优先级最低。

     多任务运行实现了CPU的高效利用,CPU不用真正的去傻呵呵用来无用延时了,而是滴答中断服务在心跳时每个任务一块延时,同时还判断哪个已经就绪。

08
2015
11

私钥和公钥的应用例子

假如现在 Alice 向 Bob 传送数字信息,为了保证信息传送的保密性、真实性、完整性和不可否认性,需要对传送的信息进行数字加密和签名,其传送过程为:
1.Alice 准备好要传送的数字信息(明文);
2.Alice 对数字信息进行哈希运算,得到一个信息摘要;
3.Alice 用自己的私钥对信息摘要进行加密得到 Alice 的数字签名,并将其附在数字信息上;
4.Alice 随机产生一个加密密钥,并用此密码对要发送的信息进行加密,形成密文;
5.Alice 用 Bob 的公钥对刚才随机产生的加密密钥进行加密,将加密后的 DES 密钥连同密文一起传送给Bob;
6.Bob 收到 Alice 传送来的密文和加密过的 DES 密钥,先用自己的私钥对加密的 DES 密钥进行解密,得到 Alice随机产生的加密密钥;
7.Bob 然后用随机密钥对收到的密文进行解密,得到明文的数字信息,然后将随机密钥抛弃;
8.Bob 用 Alice 的公钥对 Alice 的数字签名进行解密,得到信息摘要;
9.Bob 用相同的哈希算法对收到的明文再进行一次哈希运算,得到一个新的信息摘要;
10.Bob 将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。
24
2015
09

工业控制板_单片机应用的方向

‍    向PLC功能看齐,向变频器、伺服控制器看齐,向HMI看齐。

    开关量输入:PNP NPN 两种类型,用来接收机械开关,限位开关,光电开关,接近开关,磁性开

关,按钮,按键的输入。

    开关量输出:用来连接各种LED指示灯,继电器,电磁阀,以及下级设备的输入开关。

    高速信号输入:用来连接编码器,光栅尺,或者中断输入,快速响应某些高速信号。

    高速信号输出:用来连接夏季信号的高速输入,如伺服电机定位,步进电机定位。

    AD输入:用来连接各种模拟量输入,如传感器信号,各种模拟量传感器,同时注意凉城和输入类型。

比如4-20mA. 0-10V.
    DA输出:用来驱动下级要求的模拟量输入类型。比如连接变频器调速。同时注意输出量程和输出类

型4-20mA 0-10V。
    工业控制板的类型要注意实际的偏重类型。如实际偏重显示HMI,要注重HMI的要求。如实际偏重控

制PLC。则注重PLC的要求。控制与显示可采用分开CPU,也可以采用一体CPU。如变频器采用双CPU,

显示调参数为小CPU,控制为大CPU。人机界面HMI为注重显示,显示为大CPU,同时集成串口,以太网

通讯,CAN,DP等
    CPU芯片与模块芯片组合在一起,PCB,硬件,之上软件系统。从而嵌入式硬件软件系统。

      

22
2015
09

变频器的V/F控制与矢量控制

   U/f=C的正弦脉宽调制(SPWM)控制方式  其特点是控制电路结构简单、成本较低,机械特性硬度也较好,能够满足一般传动的平滑调速要求,已在产业的各个领域得到广泛应用。但是,这种控制方式在低频时,由于输出电压较低,转矩受定子电阻压降的影响比较显著,使输出最大转矩减小。另外,其机械特性终究没有直流电动机硬,动态转矩能力和静态调速性能都还不尽如人意,且系统性能不高、控制曲线会随负载的变化而变化,转矩响应慢、电机转矩利用率不高,低速时因定子电阻和逆变器死区效应的存在而性能下降,稳定性变差等。因此人们又研究出矢量控制变频调速。
     一、矢量控制(VC)方式  
  矢量控制变频调速的做法是将异步电动机在三相坐标系下的定子电流Ia、Ib、Ic、通过三相-二相变换,等效成两相静止坐标系下的交流电流Ia1Ib1,再通过按转子磁场定向旋转变换,等效成同步旋转坐标系下的直流电流Im1、It1(Im1相当于直流电动机的励磁电流;It1相当于与转矩成正比的电枢电流),然后模仿直流电动机的控制方法,求得直流电动机的控制量,经过相应的坐标反变换,实现对异步电动机的控制。其实质是将交流电动机等效为直流电动机,分别对速度,磁场两个分量进行独立控制。通过控制转子磁链,然后分解定子电流而获得转矩和磁场两个分量,经坐标变换,实现正交或解耦控制。矢量控制方法的提出具有划时代的意义。然而在实际应用中,由于转子磁链难以准确观测,系统特性受电动机参数的影响较大,且在等效直流电动机控制过程中所用矢量旋转变换较复杂,使得实际的控制效果难以达到理想分析的结果。
V/F控制与矢量都是恒转矩控制。U/F相对转矩可能变化大一些。而矢量是根据需要的转矩来调节的,相对不好控制一些。对普通用途。两者一样
1、矢量控制方式—— 
   矢量控制,最简单的说,就是将交流电机调速通过一系列等效变换,等效成直流电机的调速特性,就这么简单,至于深入了解,那就得深入了解变频器的数学模型,电机学等学科。
矢量控制原理是模仿直流电动机的控制原理,根据异步电动机的动态数学模型,利用一系列坐标变换把定子电流矢量分解为励磁分量和转矩分量,对电机的转矩电流分量和励磁分量分别进行控制。
    在转子磁场定向后实现磁场和转矩的解耦,从而达到控制异步电动机转矩的目的,使异步电机得到接近他励直流电机的控制性能。 
    具体做法是将异步电动机的定子电流矢量分解为产生磁场的电流分量 (励磁电流)和产生转矩的电流分量(转矩电流)分别加以控制,并同时控制两分量间的幅值和相位,即控制定子电流矢量,所以称这种控制方式称为矢量控制方式。 
2、V/F控制方式——
   V/F控制,就是变频器输出频率与输出电压的比值为恒定值或成比例。例如,50HZ时输出电压为380V的话,则25HZ时输出电压为190V。
    变频器采用V/F控制方式时,对电机参数依赖不大,V/f控制是为了得到理想的转矩-速度特性,基于在改变电源频率进行调速的同时,又要保证电动机的磁通不变的思想而提出的,通用型变频器基本上都采用这种控制方式。V/f控制变频器结构非常简单,但是这种变频器采用开环控制方式,不能达到较高的控制性能,而且,在低频时,必须进行转矩补偿,以改变低频转矩特性。
3、V/F这种控制方式多用于风机、泵类节能型变频器。V与f的比例关系是考虑了电机特性而预先决定的。
4、矢量控制的应用场合一般是要求比较高的传动场合。比如要求的恒转矩调速范围指标高,恒功率调速的范围比较宽。
   而且,矢量控制不同于V/F控制,它在低速时可以输出100%的力矩,而V/F控制在低速时因力矩不够而无法工作。
5、V/F控制特点——以控制速度为目的,控制特点控制精度不高,低速时,力矩明显小,常用于变频器一拖多场合下。
   矢量控制——它有速度闭环,即从负载端测出实际的速度,并与给定值进行比较,能够得到更高精度的速度控制,并且在低速时,也有最高的力矩输出。

22
2015
09

变频器的V/F控制与矢量控制

   U/f=C的正弦脉宽调制(SPWM)控制方式  其特点是控制电路结构简单、成本较低,机械特性硬度也较好,能够满足一般传动的平滑调速要求,已在产业的各个领域得到广泛应用。但是,这种控制方式在低频时,由于输出电压较低,转矩受定子电阻压降的影响比较显著,使输出最大转矩减小。另外,其机械特性终究没有直流电动机硬,动态转矩能力和静态调速性能都还不尽如人意,且系统性能不高、控制曲线会随负载的变化而变化,转矩响应慢、电机转矩利用率不高,低速时因定子电阻和逆变器死区效应的存在而性能下降,稳定性变差等。因此人们又研究出矢量控制变频调速。
     一、矢量控制(VC)方式  
  矢量控制变频调速的做法是将异步电动机在三相坐标系下的定子电流Ia、Ib、Ic、通过三相-二相变换,等效成两相静止坐标系下的交流电流Ia1Ib1,再通过按转子磁场定向旋转变换,等效成同步旋转坐标系下的直流电流Im1、It1(Im1相当于直流电动机的励磁电流;It1相当于与转矩成正比的电枢电流),然后模仿直流电动机的控制方法,求得直流电动机的控制量,经过相应的坐标反变换,实现对异步电动机的控制。其实质是将交流电动机等效为直流电动机,分别对速度,磁场两个分量进行独立控制。通过控制转子磁链,然后分解定子电流而获得转矩和磁场两个分量,经坐标变换,实现正交或解耦控制。矢量控制方法的提出具有划时代的意义。然而在实际应用中,由于转子磁链难以准确观测,系统特性受电动机参数的影响较大,且在等效直流电动机控制过程中所用矢量旋转变换较复杂,使得实际的控制效果难以达到理想分析的结果。
V/F控制与矢量都是恒转矩控制。U/F相对转矩可能变化大一些。而矢量是根据需要的转矩来调节的,相对不好控制一些。对普通用途。两者一样
1、矢量控制方式—— 
   矢量控制,最简单的说,就是将交流电机调速通过一系列等效变换,等效成直流电机的调速特性,就这么简单,至于深入了解,那就得深入了解变频器的数学模型,电机学等学科。
矢量控制原理是模仿直流电动机的控制原理,根据异步电动机的动态数学模型,利用一系列坐标变换把定子电流矢量分解为励磁分量和转矩分量,对电机的转矩电流分量和励磁分量分别进行控制。
    在转子磁场定向后实现磁场和转矩的解耦,从而达到控制异步电动机转矩的目的,使异步电机得到接近他励直流电机的控制性能。 
    具体做法是将异步电动机的定子电流矢量分解为产生磁场的电流分量 (励磁电流)和产生转矩的电流分量(转矩电流)分别加以控制,并同时控制两分量间的幅值和相位,即控制定子电流矢量,所以称这种控制方式称为矢量控制方式。 
2、V/F控制方式——
   V/F控制,就是变频器输出频率与输出电压的比值为恒定值或成比例。例如,50HZ时输出电压为380V的话,则25HZ时输出电压为190V。
    变频器采用V/F控制方式时,对电机参数依赖不大,V/f控制是为了得到理想的转矩-速度特性,基于在改变电源频率进行调速的同时,又要保证电动机的磁通不变的思想而提出的,通用型变频器基本上都采用这种控制方式。V/f控制变频器结构非常简单,但是这种变频器采用开环控制方式,不能达到较高的控制性能,而且,在低频时,必须进行转矩补偿,以改变低频转矩特性。
3、V/F这种控制方式多用于风机、泵类节能型变频器。V与f的比例关系是考虑了电机特性而预先决定的。
4、矢量控制的应用场合一般是要求比较高的传动场合。比如要求的恒转矩调速范围指标高,恒功率调速的范围比较宽。
   而且,矢量控制不同于V/F控制,它在低速时可以输出100%的力矩,而V/F控制在低速时因力矩不够而无法工作。
5、V/F控制特点——以控制速度为目的,控制特点控制精度不高,低速时,力矩明显小,常用于变频器一拖多场合下。
   矢量控制——它有速度闭环,即从负载端测出实际的速度,并与给定值进行比较,能够得到更高精度的速度控制,并且在低速时,也有最高的力矩输出。

18
2015
09

文件夹无法删除 win7

碰到一个奇怪的文件,无法查看无法删除,使用金山卫士的文件粉碎也无济于事。属性中查看安全选项显示“请求的安全信息不可用或无法显示”,删不掉它觉得非常别扭,通过搜索找到一个暴力删除文件夹或文件的方法,好用!

方法如下:

在桌面上新建 文本文档 写入下列命令:

DEL /F /A /Q \\?\%1

RD /S /Q \\?\%1

另存为"删除OK.bat"。

一定要选另存为!保存类型选“所有文件”

建好后 把要删除的文件或者目录拖放到这个bat文件的图标上就可以删除了。一切OK~!

用了这个后不管什么东西  都可以强力删除!!!很暴力!!!


26
2015
08

IE浏览器收藏夹灰色不能选问题

按下 Windows + R 键打开“运行”,在输入 regedit打开注册表编辑器。

1.在展开注册表到该位置 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet Explorer,将 Internet Explorer 下方的LinksBar项目值直接删除

2.在展开注册表到该位置 HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Internet Explorer,将 Internet Explorer 下方的LinksBar项目值直接删除。


05
2015
06

miui v6删除下拉通知栏音乐图标

 用RE文件管理器进入 /data/data/com.android.systemui/files文件夹,找到statusbar_music.maml删除或者改名就可以了。