Detailed Description
The following detailed description of specific embodiments of the present application refers to the accompanying drawings. It should be understood that the detailed description is presented herein for purposes of illustration and explanation only and is not intended to limit the present application. It will be apparent to one skilled in the art that the present application may be practiced without some of these specific details. The following description of the embodiments is merely intended to provide a better understanding of the present application by showing examples of the present application.
It should be noted that, in this document, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises an element.
In an actual application scene, a mode of reserving a program burning interface on a main board of the signal sending equipment can be adopted for program burning, but the method is difficult to realize on the main board with higher integration level, and the sizes and types of the burning interfaces are not uniform, so that unified standards cannot be established; or the program burning can be performed in a mode of offline burning after the main control is taken down and then welding is performed, but the method is low in efficiency and has damage risk after repeated welding.
The program debugging method can be used for realizing online program programming through the existing HDMI interface without reserving a program programming interface, so that the programming process achieves the effects of high efficiency and low risk.
For a better understanding of the present application, a program debugging method, apparatus, system, electronic device, and storage medium according to embodiments of the present application will be described in detail below with reference to the accompanying drawings, and it should be noted that these embodiments are not intended to limit the scope of the present disclosure.
Fig. 1 is a flowchart illustrating a program debugging method according to an embodiment of the present application. As shown in fig. 1, the program debugging method in the embodiment of the present application may be applied to a signal transmission apparatus, and includes the following steps.
S110, when the high-definition multimedia interface HDMI detects that the hot plug pin of the HDMI is in a high level state, if the extended display identification data EDID is not read through the display data channel in the HDMI, accessing the predetermined device address.
Wherein the predetermined device address is an address of a memory device located in the debugging device that is negotiated in advance, and the predetermined device address is different from an address at which the EDID is read.
S120, under the condition that the access to the predetermined device address is determined, the debug mode enabling information is read from a debug mode indication address preset in the storage device, the type of the debug mode indicated by the debug mode enabling information is obtained, and operation processing corresponding to the type of the debug mode is executed.
In some embodiments, after the HDMI-based signaling device connects to the device via the HDMI interface, the predefined process is performed according to a predefined HDMI standard, and the default address of the extended display identification data (Extended Display Identification Data, EDID) is accessed via the display data channel (Display Data Channel, DDC) in the HDMI interface, and if the default address is not read, the default address is read according to the address of the memory device in the debug device that is negotiated in advance.
According to the program debugging method of the embodiment of the application, when the signal sending device reads the EDID through the display data channel in the HDMI standard and does not read the EDID, the signal sending device may attempt to read the address of the storage device on the pre-negotiated debugging device. That is, the signaling device may read enabling information of the debug mode according to an address of a storage device located in the debug device, which is negotiated in advance, thereby determining the type of debug mode that needs to be entered, and performing an operation process corresponding to the type of debug mode. The program debugging process of the embodiment of the application does not need to reserve a programming interface on the main board of the HDMI signal transmission device, so that the problem that the definition and the size of the predetermined programming interface are not uniform is solved, the program programming structure of the signal transmission device is simplified, the cost brought by the predetermined programming interface is saved, and the program programming efficiency is improved.
In some embodiments, in step S120, in a case where it is determined that the predetermined device address is accessed, before the step of reading the debug mode enabling information from the debug mode indication address preset in the storage device, the program debug method may further include: if the header information of the address of the preset device is read to include preset effective information, the sending device and the debugging device are determined to enter a debugging mode.
In this embodiment, when the transmitting device detects a physical address of a storage medium on a debugging device (for example, a debug board) and header information read to the physical address is predetermined valid data, the signal transmitting device and the debug board enter a debug mode.
In this embodiment of the present application, the number of bytes occupied by the preset validity information in the header information and the content of the preset validity information may be set according to needs, for example, the preset validity information is the content of the first 10 bytes of the header information, which is not specifically limited in this embodiment of the present application.
FIG. 2 illustrates a specific flow diagram of the processing of operations corresponding to the type of execution debug mode, according to one embodiment. In some embodiments, the step of performing the operation process corresponding to the type of debug mode in step S120 may include the following sub-steps.
S11, switching the hot plug pin of the HDMI to a low level state.
S12, if the read debug mode enabling information is preset program burning enabling information, determining that the type of the debug mode is a program burning mode.
S13, accessing a preset storage space of the recordable program in the storage device, reading a preset code in the storage space of the recordable program to a random access memory of the sending device, and updating the preset code to a main controller of the sending device.
S14, switching the hot plug pin of the HDMI to a high level state, and continuously detecting the level state of the plug pin of the HDMI.
Through the steps S11-S14, the program burning of the sending equipment can be realized.
As an example, a DEBUG mode indication address (e.g. debug_info_0, hereinafter referred to as address a) for indicating DEBUG mode enable information (debug_command) is preset in a storage device of a DEBUG device according to pre-negotiation. If the address A is a preset program recording enabling information (for example, code_update:0 xcc), determining that the type of the debug mode is a program recording mode, and performing the program recording mode by the sending device and the microcontroller (Microprogrammed Control Unit, MCU) on the debug device.
It should be understood that the value of the program recording enabling information may be set in a customized manner according to actual needs, and the embodiment of the present application is not specifically limited.
In this embodiment of the present application, the hot plug detect (Hot Plug Detection, HPD) signal of HDMI may be used as a read/write enable signal, and before accessing a storage medium on a debug device, a signal sending device may determine the status of the HPD: when the HPD state is 1, the DDC is idle, and when the HPD state is 0, the DDC is operated; at this time, the signal transmission apparatus first pulls down the HPD, representing the meaning: notifying the MCU on the debugging device that the sending device is accessing the storage medium through the DDC; after the access is finished, the HPD is pulled high, and the representative meaning is: and informing the MCU on the debugging equipment that the DDC is in an idle state currently. Thus, the MCU on the signal sending device and the debugging device stagger access to the storage medium on the debugging device in time, and mutual interference of two hosts (the MCU on the signal sending device and the debugging device) on the bus when reading and writing the storage medium on the debugging device is avoided.
In the embodiment of the application, under the condition that the signal sending device determines that the predetermined device address is accessed, reading the debug mode enabling information from the pre-negotiated debug mode indication address in the storage device as program burning enabling information, thereby determining that the signal sending device enters a program burning mode; in the program burning mode, the signal sending device can read corresponding codes in the recordable program storage space into an internal Random Access Memory (RAM) of the signal sending device and update the read corresponding codes into a storage device of a main control of the signal sending device by reading the recordable program storage space preset in the debugging device.
The storage device in the embodiment of the application may be, for example: an electrically erasable read-Only Memory (EEPROM) or Flash Memory (Flash).
It should be understood that the program writing and online debugging process of the memory corresponding to Flash is the same as the program writing and online debugging process of the memory as EEPROM, and in the actual application scenario, the predetermined memory may also select other types of memories according to the actual situation, which is not specifically limited in the embodiment of the present application.
With continued reference to fig. 2, prior to step S13, the method further includes: s15, reading an allowable burning indication signal at a preset address in front of a recordable program storage space; the program storage space is used for storing a program to be recorded, wherein the program storage space is used for storing a program to be recorded, and the program storage space is used for storing a program to be recorded.
In this embodiment, a default value is typically present in view of the value of each address in the storage medium. For a memory device EEPROM, the value of all addresses in the default EEPROM may be, for example, 0xff. When the signal sending device reads the address corresponding to the EEPROM program, in order to facilitate the signal sending device to determine whether the part needs to be burned as the burning program, in this embodiment of the present application, a write permission indication signal, that is, an enable signal for permitting the writing, may be added to a predetermined address before the storage space of the recordable program. For example, the recordable program storage space may be defined as 0x200 to 0x2ff in advance, bit [0] of 0x1ff may be defined as an enable signal (which may be understood as an enable signal), and when bit [0] of a predetermined address 0x1ff before the signal transmission device reads the recordable program storage space is 1, data of 0x200 to 0x2ff in the recordable program storage space may be recorded.
Fig. 3 is a schematic flowchart of an operation process corresponding to a type of executing a debug mode according to another embodiment. In some embodiments, the step of performing the operation process corresponding to the type of debug mode in step S120 may include the following sub-steps.
S21, the hot plug pin is switched to a low level state.
S22, if the debug mode indication address preset in the storage device is read, and the read debug mode enabling information is the enabling information of the preset register operation, determining that the type of the debug mode is the online debug mode of the program.
S23, executing corresponding register operation based on a first instruction address and a second instruction address preset in the storage device.
The first instruction address is an address which is preset by a main controller in the debugging equipment and used for indicating a register in the sending equipment specified by register operation, and the second instruction address is a storage address which is preset by the main controller in the debugging equipment and used for indicating debugging parameter values related to online debugging of a program.
S24, switching the hot plug pin to a high level state, and continuously detecting the level state of the hot plug pin of the HDMI.
In this embodiment, if the signaling device reads the enabling information of the register operation from the debug mode instruction address, the signaling device may enter the online debug mode of the program and execute the register operation corresponding to the preset first instruction address and the preset second instruction address by the main controller in the debug device, so that the parameter debugging and the register read-write operation of the online program are implemented by the cooperation between the signaling device and the main controller in the debug device.
In some embodiments, the enabling information for the register operation includes: enabling information of a preset register read operation and enabling information of a preset register write operation.
If the enabling information of the register operation is the enabling information of the register read operation, executing the corresponding register operation includes: and writing a value read from an address of a register in the transmitting device specified by the register read operation into a storage address of a debugging parameter value related to online debugging.
If the enabling information of the register operation is the enabling information of the register write operation, the executing the corresponding register operation includes: and writing the data read from the storage address of the debugging parameter value related to the online debugging into the address of the register in the sending device specified by the register writing operation.
In this embodiment, the debugging device may indicate the type of the register operation to the signaling device through the first indication address, and use the second indication address to perform on-line reading and writing of the register by the signaling device, and implement parameter debugging of the on-line program and the register reading and writing operation through cooperation between the signaling device and the main controller in the debugging device.
As an example, a Debug mode indication address (e.g. debug_info_0, hereinafter referred to as address a) for indicating Debug mode enable information (debug_command) is preset in the memory device of the Debug device according to the pre-negotiation. If the value of the address A is the enabling information of the preset Register read operation (for example, register_read:0x5 a) or the enabling information of the preset Register write operation (for example, register_write:0xa 5), the MCU on the signaling device and the debugging device performs the program on-line debugging mode.
It should be understood that, the value of the enabling information of the register write operation and the value of the enabling information of the register read operation may be set in a customized manner according to actual needs, and the embodiment of the present application is not limited specifically.
In this example, according to the pre-negotiation, a first instruction address and a second instruction address are also preset in the storage device of the debugging device. A first instruction address for instructing an address of a register in the present transmission apparatus specified by the register operation; and the second instruction address is used for indicating the storage address of the debugging parameter value related to the online debugging of the program.
Since the above register operation is a register operation for the signal transmission apparatus, the length of the first instruction address may be set according to the address length of the signal transmission apparatus, and the length of the second instruction address may be set according to the data length of the signal transmission apparatus.
For example, if the address of the signaling device is a 16-bit address, the first indication address may be a 16-bit address, so it is necessary to occupy two bytes of address space. Illustratively, when the first indicated address occupies two bytes of address space, it may be expressed as: debug_info_1 (which may be abbreviated as address B below) and debug_info_2 (which may be abbreviated as address C below); address B is an address of a High byte (register_address_high) of a Register address for performing a Register operation in the signaling device, and address C is a Low byte address (register_address_low) of a Register address for performing a Register operation in the signaling device.
For example, if the DATA length of the signaling device is 8 bits, the second indicated address may be an 8-bit address (Read/write_register_data, which may be abbreviated as address D below), so that one byte of address space is required.
In the embodiment of the present application, whether the data is to be read or written is determined according to the specific content of Debug mode enabling information (debug_command) recorded in the Debug mode indication address (address a described above).
In some embodiments, after step S23, the program debugging method further includes:
Switching the hot plug pin to a low level state; if the read debug mode enabling information is preset program burning enabling information, determining that the type of the debug mode is a program burning mode; accessing a preset storage space of the recordable program in the storage device, reading the debugged code stored in the storage space of the recordable program to a random access memory of the sending device, and updating the code to a main controller of the sending device; and switching the hot plug pin of the HDMI to a high level state, and continuously detecting the level state of the plug pin of the HDMI.
The debugged code is obtained by writing the debugging parameter value in the second instruction address into the storage space of the recordable program under the condition that the main controller of the debugging equipment determines that the debugging parameter value in the second instruction address meets the preset parameter debugging requirement.
In this embodiment, the signal sending device may implement program burning of the debugged code through the burning board card. And the HDMI signal sending equipment and the debugging tool used by the HDMI burning board are used for debugging parameter information of a display pre-stored in a preset memory of the debugging equipment together, and the debugged codes are burnt through the burning board.
The debugging parameter values related to online debugging of the program may be parameter information of the display, where the parameter information may include, for example: brightness, chrominance, saturation information, image aspect ratio, etc. The debugging device (HDMI burn-in board) may transfer several main parameters specified in the above-mentioned parameter information of the display to a specified address (e.g. the above-mentioned second indicated address) of a memory such as EEPROM for online debugging of the parameter information of the display.
Fig. 4 is a schematic flowchart of an operation process corresponding to a type of executing a debug mode according to still another embodiment. In some embodiments, the step of performing the operation process corresponding to the type of debug mode in step S120 may include the following sub-steps.
S31, switching the hot plug pin to a low level state; s32, if the debug mode indication address preset in the storage device is read, and the read debug mode enabling information is preset enabling information for exiting the debug mode, determining that the type of the debug mode is exiting the debug mode; s33, switching the hot plug pin to a high level state, and continuously detecting the level state of the hot plug pin of the HDMI.
In this embodiment, the signaling device may exit the debug mode by reading from the debug mode indication address to enabling information to exit the debug mode.
According to the program debugging method, the signal sending device can take the level state of the HPD of the HDMI as a read-write enabling signal, read debugging mode enabling information from a preset debugging mode indication address in the storage device, enter a corresponding debugging mode, and execute operation processing corresponding to the type of the debugging mode, so that online programming of the program and online debugging of parameters in a display scheme of a terminal client are achieved, a program programming interface is not required to be reserved in the whole process, online programming and online debugging of the program are achieved through the existing HDMI interface, and a program debugging process with high efficiency and low risk is achieved.
The program debugging process flow of the signal transmission apparatus of the exemplary embodiment of the present application is described below by way of fig. 5 to 7. Fig. 5 shows a schematic flow chart of a program debugging process performed by the signal sending device in the embodiment of the application.
In fig. 5, the program debugging flow of the embodiment of the present application may include the following steps.
S501, system initialization and chip initialization.
S502, determining a debugging mode.
S503, judging whether the predetermined first time period of the timing is completed.
If so, step S504 is executed, and if not, step S505 is executed.
S504, identifying a debugging mode.
After determining the debug mode, the signaling device may perform an operation process corresponding to the type of debug mode.
S505, timing a predetermined second time period.
After step S505, S502 is continued.
In the embodiment of the application, in the process of system initialization and chip initialization, the signal sending device monitors whether the HDMI device exists or not through an HPD pin of the HDMI, if so (if the HPD of the HDMI is detected to be in a high level state), the EDID can be read through the DDC, and if not, the address of the storage device in the debugging device, which is negotiated in advance, is accessed. As can be seen from fig. 5, the determined debug mode can be accessed in a cyclic manner in the program debug process of the signaling device, and the determined debug mode is a main position in the whole process of program debug processing by the chip software in the signaling device.
In this embodiment, the predetermined first time period may be, for example, 100 milliseconds (ms), and the predetermined second time period may be, for example, 10ms, and may be specifically set according to an actual application scenario, which is not specifically limited in this embodiment of the present application.
Fig. 6 is a schematic flow chart of determining a debug mode by a signal sending device in an embodiment of the present application. In fig. 6, the process flow of determining a debug mode by the signaling device of the embodiment of the present application may include the following steps.
S601, initializing HPD.
S602, judging whether HPD is at high level.
If the level state of the HPD is detected to be 1, which represents that the DDC is idle, S603 is continuously executed; otherwise, if the HPD status is 0, which represents that the DDC is being operated, S601 is performed.
S603, DDC enabling.
S604, resetting the DDC.
In S603 and S604, the DDC may include two pins: the Serial Clock (SCL) pin may be denoted as DDC SCL and the Serial Data (SDA) pin may be denoted as DDC SDA, for example. When the integrated circuit bus (Inter-Integrated Circuit, IIC) is idle, both SDA and SCL are in a high state. The MCU sends an end signal to the DDC channel, namely SCL keeps high level, and SDA is pulled high again to indicate the end of data transmission.
In this embodiment of the present application, according to the IIC protocol requirement, after the chip of the sending device finishes using the IIC bus each time, it resets the IIC bus, so as to prepare for the next use of the IIC bus by the sending device.
S605, the slave address selection is performed by DDC.
S606, the slave device header information is read through the DDC.
In S605 and S606, the slave device is a storage device (storage medium) in the debug device, the slave address is an address of a storage device in the debug device negotiated in advance, and the address is different from an address at which EDID is read.
S607, judging whether the slave device header information is predetermined valid information; if yes, step S608 is executed, and if no, step S601 is executed.
S608, entering a debug mode.
In the embodiment of the application, after the transmitting device is connected with the HDMI debugging device and enters the debugging mode, the MCU on the debugging device can control the transmitting device to select different addresses on the EEPROM through the DDC, so that the transmitting device enters the operation modes under different debugging modes.
Fig. 7 is a schematic flow chart of a signal sending device entering a pre-configured debug mode in an embodiment of the present application. In fig. 7, the processing flow of the signaling device entering the pre-configured debug mode according to the embodiment of the present application may include the following steps.
S701, HPD pulls low.
In this step, the debug mode will pull the HPD low before accessing the DDC, which represents to tell the MCU on the debug device that the signaling device is accessing the storage medium through the DDC, to avoid two hosts on the IIC bus (signaling device is good for the MCU on the debug device) to interfere with each other.
S702, DDC is enabled.
S703, DDC reset.
S704, DDC selects from the address.
In steps S702-S704, DDC enable, reset, select from address, are necessary initialization operations to operate the IIC bus each time through DDC.
S705, debug mode switching.
In step S705, register operations such as register read, register write, online program burn, and exit from the debug mode described in the above embodiments may be performed according to the switched debug mode. And reading the debugging mode enabling information from a preset debugging mode indication address in the storage device in a circulating mode in the program debugging flow of the signal transmission device, and reading and entering one of preset debugging modes when determining the debugging mode.
In the embodiment of the application, when a terminal client needs to debug a program, an MCU on an HDMI debugging device presets a debug mode indication address on the debugging device according to pre-negotiation, a first indication address (an address for indicating a register in the transmitting device designated by register operation) and a second indication address (a storage address for indicating a debug parameter value related to online debugging of the program) are used for indicating the register, in order to prevent read-write conflict of a preset memory in the debugging process, an HPD signal is used as a negotiation signal, and MCU on the transmitting device and the debugging device accesses the pre-negotiated address in a staggered time manner, so that data exchange is indirectly performed, the read-write conflict of the preset memory in the debugging process is avoided, and the data safety and efficiency of online debugging are improved.
According to the program debugging method of the embodiment of the application, for the HDMI signal transmission equipment, the HDMI interface is certain, program burning and program online debugging are completed by using the DDC of HDMI, so that the updated program firmware is carried, the online debugging of parameters in a display scheme of a terminal client can be realized, the program burning interface is not required to be reserved in the whole process, the online burning of the program is realized through the existing HDMI interface, and the technical effects of high efficiency and low risk in the burning process are realized.
Fig. 8 shows a flowchart of a program debugging method according to another embodiment of the present application. In some embodiments, the program debugging method is applied to a debugging device. As shown in fig. 8, the program debugging method may include the following steps.
S801, the receiving signal transmitting apparatus accesses a predetermined apparatus address of a storage apparatus located in the present debugging apparatus, which is negotiated in advance, through the display data channel.
The access is performed when the signal transmitting device detects that the hot plug pin of the high-definition multimedia interface HDMI is in a high-level state, the extended display identification data EDID is not read through a display data channel in the HDMI, and the predetermined device address is different from the address for reading the EDID.
S802, receiving access of the signal sending device to a preset debug mode indication address in the storage device, so that the signal sending device reads debug mode enabling information in the debug mode indication address, and executing corresponding operation processing according to the type of the debug mode indicated by the debug mode enabling information.
According to the program debugging method of the embodiment of the application, the debugging device can access the preset device address of the storage device in the debugging device according to the pre-negotiation when the signal sending device detects that the HPD pin of the HDMI is in a high level state and the extended display identification data EDID is not read through the display data channel in the HDMI, and the preset device address is different from the default address of the signal sending device for reading the EDID; and receiving access of the signal sending device to a debug mode indication address preset in the storage device, so that the signal sending device executes corresponding operation processing according to the type of the debug mode indicated by the debug mode enabling information.
According to the program debugging method, a program burning interface is not required to be reserved, online burning and online program debugging of a program can be realized through the existing HDMI interface, high-efficiency and low-risk operation processing in a corresponding debugging mode is realized, and for products with higher integration level and smaller dies, the processing efficiency of online burning and program debugging can be improved.
In some embodiments, prior to step S802, the program debugging method further comprises: the header information of the preset equipment address is set to comprise preset effective information, so that the signal sending equipment enters a debugging mode according to the read preset effective information; setting a debug mode indication address in the storage device and setting a value of the debug mode indication address as debug mode enable information for indicating a predetermined type of debug mode.
In this embodiment, the MCU of the debug apparatus may determine that the signal transmission apparatus and the debug board enter the debug mode by setting predetermined valid information in header information of a predetermined apparatus address when the transmission apparatus detects a physical address of a storage medium on the debug apparatus and reads header information of the physical address as predetermined valid data.
In some embodiments, if the predetermined debug mode is a program burn mode, the program debug method further includes, prior to step S802: setting debugging mode enabling information as preset program burning enabling information; and storing a preset code in a storage space of a program which can be burnt and is preset in the storage device, so that the signal transmission device can use the preset code to burn the program on line.
The predetermined codes are pre-stored in the storage space of the recordable program or stored in the storage space of the recordable program through a computer PC device, and the PC device is connected with the debugging device through a display data channel.
In this embodiment, if the debugging device is required to perform program burning to update the corresponding code used by the chip in the signal transmission device, the type of the predetermined debugging mode may be a program burning mode. The predetermined codes stored in the storage space of the recordable program can be pre-stored codes or codes written by an external PC of the debugging equipment.
In this scenario, the MCU of the debug device may set the value of the debug mode indication address as program burning enable information in a debug mode indication address preset in the storage device in advance, so that the signaling device enters the program burning mode according to the debug mode enable information read from the debug mode indication address.
In some embodiments, after the step of storing the predetermined code, the program debugging method further includes: setting a write permission indication signal at a preset address in front of a recordable program storage space; the program on-line programming is performed by using the corresponding codes in the storage space of the programmable program as the programmable program.
In this embodiment, by allowing the burn instruction signal to function as an enable allowing the burn, the signal transmission apparatus is caused to determine that the data in the writable program storage space can be used for the burn based on the read signal.
In some embodiments, if the predetermined debug mode type is the program online debug mode, then the program debug method further includes, prior to step S802: when the hot plug pin of the HDMI is detected to be in a high level state, the hot plug pin of the HDMI is switched to be in a low level state; setting debug mode enabling information as preset enabling information of register operation, wherein the enabling information of register operation comprises: enabling information of a register read operation and enabling information of a register write operation; setting a first instruction address and a second instruction address in a storage device; and switching the hot plug pin of the HDMI to a high level state, and continuously detecting the level state of the hot plug pin of the HDMI.
The first instruction address is used for indicating the address of a register in the signal sending equipment appointed by the register operation, and the second instruction address is used for indicating the storage address of a debugging parameter value related to the online debugging of the program.
In this embodiment, if the debugging device is required to perform online debugging of the program, the type of the debug mode that can be predetermined is the enabling information of the register operation, so that parameter debugging of the online program and register read-write operation can be implemented through cooperation between the signaling device and the main controller in the debugging device.
In some embodiments, if it is determined that the register operation currently required to be performed is a register read operation, setting the first instruction address and the second instruction address in the storage device includes: the address of the register in the signaling device that needs to be read is taken as the value of the address of the register specified by the register read operation.
In some embodiments, if it is determined that the register operation currently required to be performed is a register write operation, setting the first instruction address and the second instruction address in the storage device includes: the address of a register in the signaling device, to which the debug parameter value is to be written, is taken as the value of the address of the register specified by the register read operation, and the debug parameter value to be written is taken as the value of the deposit address of the debug parameter value involved in the online debugging.
As an example, a Debug mode indication address (e.g. debug_info_0, hereinafter referred to as address a) for indicating Debug mode enable information (debug_command) is preset in the memory device of the Debug device according to the pre-negotiation. If the value of the address A is the enabling information of the preset Register read operation (for example, register_read:0x5 a) or the enabling information of the preset Register write operation (for example, register_write:0xa 5), the MCU on the signaling device and the debugging device performs the program on-line debugging mode.
As an example, if the address of the signaling device is a 16-bit address, the first indication address may be a 16-bit address, so it is necessary to occupy two bytes of address space. For example, the first indicated address may be: the address of the high byte (address B) of the register address for performing the register operation in the signaling device, and the address of the low byte (address C) of the register address for performing the register operation in the signaling device.
As one example, if the data length of the signaling device is 8 bits, the second instruction address is 8 bits (address D).
As a read-write flow of register operation in the signaling device, for example, when the MCU on the debugging device needs to perform a read operation on the signaling device register 0x1, the following process may be performed.
When the MCU on the debugging device detects that the HPD pin of the HDMI is at a high level, the HPD pin is pulled down, and the values of the address A, the address B and the address C (the read operation does not involve the address D) are updated respectively: address a is assigned 0x5a, address B is assigned 0x0, and address C is assigned 0x1.
When the signal transmission device detects that the HPD pin of the HDMI is at a high level, the HPD pin is pulled down first, and after the values of the address a, the address B, and the address C are read, it may be determined that the MCU needs to read the value of the 0x1 register of the signal transmission device, and write the value of the 0x1 register into the address D.
When the MCU on the debugging equipment detects that the HPD pin of the HDMI is at a high level, the HPD pin is pulled down, the value of the address D is read, and the value of the 0x1 register of the read signal sending equipment is obtained.
In the embodiment of the application, according to the pre-negotiation, the sending device and the MCU stagger time to access the addresses, so that data exchange in the online program debugging process is indirectly performed.
In some embodiments, in a case where it is determined that the debug parameter value in the second instruction address meets a preset parameter debug requirement, the program debug method further includes: writing the debugging parameter value in the second instruction address into a preset storage space of the recordable program in the storage device to be used as a code after debugging; setting the debugging mode enabling information as preset program burning enabling information, so that the signal sending equipment can be used for performing program online burning by using the debugged codes.
In this embodiment, the MCU of the debugging device writes the debug parameter value in the second instruction address into a preset recordable program storage space in the storage device, to be used as a code after debugging, and sets the debug mode enabling information to be preset program recording enabling information, so that the signal sending device can implement program recording of the code after debugging through the recording board card.
In some embodiments, in the event that it is determined that exiting the program burn mode or exiting the program online debug mode is currently required, the method further comprises: setting the debug mode enabling information as preset exit debug mode enabling information, so that the signaling device exits the debug mode according to the read exit debug mode enabling information.
In this embodiment, by exiting the setting of the debug mode enable information, the signaling device may exit the debug mode by reading the enable information exiting the debug mode from the debug mode indication address.
In some embodiments, in the case where the present debugging device is connected to the computer PC device through the display data channel, the program debugging method may further include: transmitting debugging parameter values related to online debugging of the program to the PC equipment through a display data channel so as to display the debugging parameter values through the PC equipment; the method comprises the steps of receiving updated debugging parameter values from the PC equipment, and taking the updated debugging parameter values as new debugging parameter values needing to be written.
In this embodiment, the debugging parameter values in the online debugging process of the program can be read by the PC, and the debugging parameter values can be modified by the MCU, so that the online software parameters can be debugged.
In some embodiments, if the predetermined debug mode type is a program online debug mode, the program debug method may further comprise: displaying debugging parameter values related to online debugging of the program through a preset display terminal; the predetermined display terminal is connected with the debugging device through HDMI.
In this embodiment, when the terminal client needs to perform program debugging, the HDMI burn-in board provides an HDMI-based Bypass (Bypass) function, and the image display result at the first specified address obtained by each debugging is displayed by the display terminal, so that the image display effect of the debugging result is visually displayed when the program is debugged.
In the embodiment of the application, in the online debugging mode of the program, the HDMI signaling device may read the valid data of the debugging parameter value from the designated address negotiated in advance, and may cover the corresponding parameter value when the program runs after reading the valid data of the debugging parameter value of the designated address. Meanwhile, the HDMI debugging device can provide a designated address for online reading and writing of a register in the signal transmission device, so that the HDMI debugging device is matched with the debugging device in the online debugging process of a program to carry out online debugging on parameter information in a display scheme of a client terminal, and a debugged code can be burnt through a burning board.
According to the program debugging method provided by the application, the program programming interface is not required to be reserved, the online programming and online program debugging of the program are realized through the existing HDMI interface, the programming interface is not required to be reserved, and the technical effects of high efficiency and low risk in the programming process are realized. Especially for products with higher integration level and smaller die, the efficiency of an online burning scheme can be improved.
Hereinafter, a signal transmission apparatus and a debugging apparatus according to an embodiment of the present application will be described in detail with reference to the accompanying drawings. Fig. 9 shows a schematic structural diagram of a signal transmission apparatus provided according to an embodiment of the present application; fig. 10 shows a schematic structural diagram of a debugging device according to an embodiment of the present application. As shown in fig. 9, the signal transmission apparatus may include the following modules.
The address accessing module 910 is configured to, when the hot plug pin of the HDMI is detected to be in a high level state through the high definition multimedia interface HDMI, access the predetermined device address if the extended display identification data EDID is not read through the display data channel in the HDMI.
Wherein the predetermined device address is an address of a memory device located in the debugging device that is negotiated in advance, and the predetermined device address is different from an address at which the EDID is read.
The debug mode execution module 920 is configured to, when determining that the predetermined device address is accessed, read debug mode enabling information from a debug mode indication address preset in the storage device, obtain a type of the debug mode indicated by the debug mode enabling information, and execute an operation process corresponding to the type of the debug mode.
In some embodiments, the debug mode execution module 920 is specifically configured to determine, when it is determined that the predetermined device address is accessed, that the sending device and the debug device enter the debug mode if the header information of the predetermined device address includes preset valid information before the debug mode enabling information is read from the debug mode indication address preset in the storage device.
In some embodiments, debug mode execution module 920 is specifically configured to: switching the hot plug pin of the HDMI to a low level state; if the read debug mode enabling information is preset program burning enabling information, determining that the type of the debug mode is a program burning mode; accessing a preset storage space of a recordable program in the storage device, reading a preset code in the storage space of the recordable program to a random access memory of the sending device, and updating the preset code to a main controller of the sending device; and switching the hot plug pin of the HDMI to a high level state, and continuously detecting the level state of the plug pin of the HDMI.
In some embodiments, debug mode execution module 920 is specifically configured to: before accessing a preset recordable program storage space in the storage device, reading a recording permission indication signal at a preset address in front of the recordable program storage space; the program storage space is used for storing a program to be recorded, wherein the program storage space is used for storing a program to be recorded, and the program storage space is used for storing a program to be recorded.
In some embodiments, debug mode execution module 920 is specifically configured to: switching the hot plug pin to a low level state; if the debug mode indication address preset in the storage device is read, determining that the type of the debug mode is an online debug mode of the program, wherein the read debug mode enabling information is enabling information of a preset register operation; executing corresponding register operation based on a first instruction address and a second instruction address preset in the storage device, wherein the first instruction address is an address preset by a main controller in the debugging device and used for indicating a register in the sending device designated by the register operation, and the second instruction address is a storage address preset by the main controller in the debugging device and used for indicating debugging parameter values related to online debugging of a program; and switching the hot plug pin to a high level state, and continuously detecting the level state of the hot plug pin of the HDMI.
In some embodiments, the enabling information for the register operation includes: enabling information of a preset register read operation and enabling information of a preset register write operation.
If the enabling information of the register operation is the enabling information of the register read operation, executing the corresponding register operation includes: and writing a value read from an address of a register in the transmitting device specified by the register read operation into a storage address of a debugging parameter value related to online debugging.
If the enabling information of the register operation is the enabling information of the register write operation, the executing the corresponding register operation includes: and writing the data read from the storage address of the debugging parameter value related to the online debugging into the address of the register in the sending device specified by the register writing operation.
In some embodiments, debug mode execution module 920 is specifically configured to: after the hot plug pin is switched to a high level state and the level state of the hot plug pin of the HDMI is continuously detected, the hot plug pin is switched to a low level state; if the read debug mode enabling information is preset program burning enabling information, determining that the type of the debug mode is a program burning mode; accessing a preset storage space of the recordable program in the storage device, reading the debugged code stored in the storage space of the recordable program to a random access memory of the sending device, and updating the code to a main controller of the sending device; the debugged code is obtained by writing the debugging parameter value in the second instruction address into the storage space of the recordable program under the condition that the main controller of the debugging equipment determines that the debugging parameter value in the second instruction address meets the preset parameter debugging requirement; and switching the hot plug pin of the HDMI to a high level state, and continuously detecting the level state of the plug pin of the HDMI.
In some embodiments, debug mode execution module 920 is specifically configured to: switching the hot plug pin to a low level state; if the debug mode indication address preset in the storage device is read, determining that the type of the debug mode is the exit debug mode if the read debug mode enabling information is preset enabling information exiting the debug mode; and switching the hot plug pin to a high level state, and continuously detecting the level state of the hot plug pin of the HDMI.
According to the signal transmission device of the embodiment of the application, when the EDID is read through the display data channel and not read in accordance with the HDMI standard in the HDMI-based signal transmission device, the signal transmission device may attempt to read the address of the storage device on the pre-negotiated debug device. That is, the signaling device may read enabling information of the debug mode according to an address of a storage device located in the debug device, which is negotiated in advance, thereby determining the type of debug mode that needs to be entered, and performing an operation process corresponding to the type of debug mode.
The program debugging process of the embodiment of the application does not need to reserve a programming interface on the main board of the HDMI signal transmission device, so that the problem that the definition and the size of the predetermined programming interface are not uniform is solved, the program programming structure of the signal transmission device is simplified, the cost brought by the predetermined programming interface is saved, and the program programming efficiency is improved.
As shown in fig. 10, the debugging device may include the following modules.
The device address access receiving module 1010 is configured to receive an access, by the signaling device, to a predetermined device address of a storage device in the debug device that is negotiated in advance through the display data channel.
The access is performed when the signal transmitting device detects that the hot plug pin of the high-definition multimedia interface HDMI is in a high-level state, the extended display identification data EDID is not read through a display data channel in the HDMI, and the predetermined device address is different from the address for reading the EDID.
The mode information access receiving module 1020 is configured to receive an access of the signal sending device to a debug mode indication address preset in the storage device, so that the signal sending device reads debug mode enabling information in the debug mode indication address, and execute corresponding operation processing according to a type of the debug mode indicated by the debug mode enabling information.
In some embodiments, the commissioning device may further comprise: the device comprises a header information setting module, a data processing module and a data processing module, wherein the header information setting module is used for setting header information of a preset device address as preset effective information before receiving access of the preset debug mode indication address in the storage device by the signal sending device, so that the signal sending device enters a debug mode according to the read preset effective information; a debug mode indication address setting module configured to set a debug mode indication address in the storage device and set a value of the debug mode indication address as debug mode enabling information for indicating a predetermined type of debug mode.
In some embodiments, if the predetermined debug mode type is a program burn mode, the debug apparatus may further include: the device comprises a debug mode enabling information setting module, a program burning enabling module and a program burning enabling module, wherein the debug mode enabling information setting module is used for setting debug mode enabling information as preset program burning enabling information before receiving access of the signal sending equipment to a preset debug mode indication address in the storage equipment; the device comprises a preset code storage module, a signal transmission device and a program storage module, wherein the preset code storage module is used for storing preset codes in a storage space of a recordable program preset in the storage device, so that the signal transmission device can use the preset codes to perform program online recording; the predetermined codes are pre-stored in the storage space of the recordable program or stored in the storage space of the recordable program through a computer PC device, and the PC device is connected with the debugging device through a display data channel.
In some embodiments, the commissioning device may further comprise: the program storage space is used for storing the program to be programmed, and the program storage space is used for storing the program to be programmed; the program on-line programming is performed by using the corresponding codes in the storage space of the programmable program as the programmable program.
In some embodiments, if the predetermined debug mode is a program online debug mode, the debug mode enabling information setting module is further configured to switch the hot plug pin of the HDMI to a low level state when detecting that the hot plug pin of the HDMI is in a high level state before receiving an access of the signal transmission device to a debug mode indication address preset in the storage device; setting debug mode enabling information as preset enabling information of register operation, wherein the enabling information of register operation comprises: enabling information of a register read operation and enabling information of a register write operation; setting a first instruction address and a second instruction address in a storage device, wherein the first instruction address is used for indicating the address of a register in a signal transmission device appointed by register operation, and the second instruction address is used for indicating the storage address of a debugging parameter value related to online debugging of a program; and switching the hot plug pin of the HDMI to a high level state, and continuously detecting the level state of the hot plug pin of the HDMI.
In some embodiments, if it is determined that the register operation that is currently required to be performed is a register read operation, the debug mode enabling information setting module is specifically configured to: taking the address of a register in the signal transmission equipment which needs to be read as the value of the address of the register designated by the register reading operation; if it is determined that the register operation that needs to be performed currently is a register write operation, the debug mode enabling information setting module is specifically configured to: the address of a register in the signaling device, to which the debug parameter value is to be written, is taken as the value of the address of the register specified by the register read operation, and the debug parameter value to be written is taken as the value of the deposit address of the debug parameter value involved in the online debugging.
In some embodiments, the commissioning device may further comprise: the debugged code writing module is used for writing the debug parameter value in the second instruction address into a preset recordable program storage space in the storage device as a debugged code under the condition that the debug parameter value in the second instruction address meets the preset parameter debugging requirement; the debugging mode enabling information setting module is further used for setting the debugging mode enabling information to be preset program burning enabling information so as to be used for the signal sending equipment to use the debugged codes to conduct program online burning.
In some embodiments, the debug mode enabling information setting module is further configured to set the debug mode enabling information to be preset exit debug mode enabling information when it is determined that the program burning mode needs to be exited or the program online debug mode needs to be exited, so that the signaling device exits the debug mode according to the read exit debug mode enabling information.
In some embodiments, the commissioning device may further comprise: the PC equipment communication module is used for transmitting debugging parameter values related to online debugging of the program to the PC equipment through the display data channel under the condition that the debugging equipment is connected with the computer PC equipment through the display data channel so as to display the debugging parameter values through the PC equipment; and receiving the updated debug parameter values from the PC device, and taking the updated debug parameter values as new debug parameter values to be written.
In some embodiments, if the predetermined type of debug mode is a program online debug mode, the debug apparatus may further comprise: the display terminal communication module is used for displaying debugging parameter values related to online debugging of the program through a preset display terminal; the predetermined display terminal is connected with the debugging device through HDMI.
According to the debugging device of the embodiment of the application, when the signal sending device detects that the HPD pin of the HDMI is in a high level state, and the extended display identification data EDID is not read through the display data channel in the HDMI, the predetermined device address of the storage device in the debugging device can be accessed according to the pre-negotiation, and the predetermined device address is different from the default address of the signal sending device for reading the EDID; and receiving access of the signal sending device to a debug mode indication address preset in the storage device, so that the signal sending device executes corresponding operation processing according to the type of the debug mode indicated by the debug mode enabling information.
Fig. 11 is a schematic diagram of a module functional architecture of a debugging device according to another embodiment of the present application. As shown in fig. 11, the debugging device may further include: an on-line programming module 1110 for running program (RAM Code), an on-line programming module 1120 for operation instruction (Option Code), a feedback module 1130 for current system operation state, an on-line register read-write module 1140, and an entry and exit module 1150 for Debug (Debug) mode. However, the present application is not limited to the specific modules described above and shown in fig. 11, and in some embodiments, the commissioning device may include only some of the modules therein, i.e., the commissioning device may include a more flexible configuration of modules, as described below in connection with particular embodiments.
In some embodiments, the RAM Code online programming module 1110 is configured to write the corresponding Code that needs to be programmed into the signaling device into the pre-negotiated writable program storage space in the storage medium of the debugging device. The corresponding code can be a code stored in advance or stored in a storage space of a recordable program in the EEPROM/Flash through a PC.
An Option Code online burn module 1120, configured to write Debug mode enabling information (debug_command) into a pre-negotiated Debug mode indication address in a storage medium of the Debug device. The system working state feedback module 1130 is configured to write main parameters of the chip in the current running state into a storage medium (EEPROM/Flash) of the debug apparatus.
The register online read/write module 1140 is configured to set two addresses (the first instruction address and the second instruction address) in a storage medium (EEPROM/Flash) of the debug device, so as to be used for online read/write for a register in the signaling device.
The Debug mode entry and exit module 1150 is configured to set Debug mode enabling information in a Debug mode indication address pre-negotiated in a storage medium (EEPROM/Flash) of the Debug device, so that the signaling device enters a corresponding Debug mode or exits the Debug mode according to the read Debug mode enabling information.
Fig. 12 is a schematic circuit diagram of a debugging device in the embodiment of the present application.
Referring to fig. 12, in some embodiments, the commissioning device may include an HDMI-based burn-in board. Illustratively, the main controller 1201 in the commissioning device may be, for example, an MCU; the memory device 1202 may be, for example, an EEPROM. DDC may be used as a data channel between the MCU and the EEPROM, and between the EEPROM and an external data access device (e.g., HDMI-based signaling device).
In fig. 12, the DDC may include two pins: the SCL pins, for example, may be denoted as DDCSCL and SDA pins, for example, may be denoted as DDCSDA.
In fig. 12, the burn-in board card may include debug mode enabling means 1203 for performing switching of the level state of the HPD, for example, switching the HPD from a high level state to a low level state, or switching the HPD from a low level state to a high level state.
In one embodiment, the burn-in board card may be connected to a television apparatus in a normal mode; when the level state of the HPD is switched from the high level state to the low level state, the signal sending device and the MCU on the burn-in board enter a debugging mode under the condition that the signal sending device reads preset effective information from the head information of the preset device address of the burn-in board.
In fig. 12, the burn-in board card may include a debug indication module 1204 and a burn-in indication module 1205. In some embodiments, when the signal sending device and the main controller 1201 on the burn-in board card enter the program online debug mode, the main controller 1201 may control the debug indication module 1204 to output an indication signal; when the signal transmitting device and the main controller 1201 on the recording board enter the program recording mode, the main controller 1201 can control the recording indicating module 1205 to output an indicating signal. Illustratively, the debug indication module 1204 and the burn indication module 1205 may be, for example, light emitting diodes.
According to the program recording and online debugging of the signal transmitting device and the recording board card, a recording interface is not required to be reserved on a main board of the HDMI signal transmitting device, so that the problem that the definition and the size of the predetermined recording interface are not uniform is solved, the program recording structure of the signal transmitting device is simplified, the cost brought by the predetermined recording interface is saved, and the program recording efficiency is improved.
Fig. 13 is a schematic structural diagram of a program debugging system according to an embodiment of the present application. As shown in fig. 13, the program debugging system includes a signaling device 1310 and a debugging device 1320.
A signal transmission device 1310 for performing the program debugging method applied to the HDMI-based signal transmission device described in the above-described embodiment; the debugging device 1320 is configured to execute the program debugging method applied to the HDMI-based debugging device described in the above embodiment.
It should be clear that the present application is not limited to the specific arrangements and processes described in the above embodiments and shown in the drawings. For convenience and brevity of description, detailed descriptions of known methods are omitted herein, and specific working processes of the systems, modules and units described above may refer to corresponding processes in the foregoing method embodiments, which are not repeated herein.
Fig. 14 shows a schematic structural diagram of a debug system according to an embodiment of the present application. In fig. 14, the debugging system may include an HDMI-based signaling device 1301, an HDMI-based debugging device 1320, an HDMI-based display terminal 1330, and a computer device 1340. The same reference numerals as in fig. 14 and 13 denote the same modules.
A signaling device 1310 for performing the signaling device-based program debugging method described in the above embodiment.
A debugging device 1320 for executing the program debugging method based on the debugging device described in the above embodiment.
And the display terminal 1330 is used for displaying the debugging parameter values related to the online debugging of the program, so that the image display effect of the debugging result is visually displayed during the debugging of the program.
Computer device 1340, for storing predetermined codes in a recordable program storage space of a storage medium of debugging device 1320, may also be used for reading and updating contents in pre-negotiated addresses in the storage medium on debugging device 1320.
Fig. 15 is a block diagram illustrating an exemplary hardware architecture of a computing device capable of implementing the program debugging method and apparatus according to an embodiment of the present application.
As shown in fig. 15, computing device 1500 includes an input device 1501, an input interface 1502, a central processor 1503, a memory 1504, an output interface 1505, and an output device 1506. The input interface 1502, the central processor 1503, the memory 1504, and the output interface 1505 are connected to each other through a bus 1510, and the input device 1501 and the output device 1506 are connected to the bus 1510, and further connected to other components of the computing device 1500 through the input interface 1502 and the output interface 1505, respectively.
Specifically, the input device 1501 receives input information from the outside and transmits the input information to the central processor 1503 through the input interface 1502; the central processor 1503 processes the input information based on computer-executable instructions stored in the memory 1504 to generate output information, temporarily or permanently stores the output information in the memory 1504, and then communicates the output information to the output device 1506 via the output interface 1505; the output device 1506 outputs the output information to the outside of the computing device 1500 for use by a user.
In one embodiment, the computing device 1500 shown in fig. 15 may be implemented as an electronic device that may include: a memory configured to store a program; and a processor configured to run the program stored in the memory to perform the program debugging method described in the above embodiment. According to embodiments of the present application, the processes described above with reference to flowcharts may be implemented as computer software programs. For example, embodiments of the present application include a computer program product comprising a computer program tangibly embodied on a machine-readable medium, the computer program comprising program code for performing the methods described in the above embodiments. In such embodiments, the computer program may be downloaded and installed from a network, and/or installed from a removable storage medium.
In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product comprises one or more computer instructions which, when run on a computer, cause the computer to perform the method described in the above embodiments. When the computer program instructions are loaded and executed on a computer, the processes or functions in accordance with embodiments of the present application are produced in whole or in part. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions may be stored in or transmitted from one computer-readable storage medium to another, for example, by wired (e.g., coaxial cable, fiber optic, digital Subscriber Line (DSL)), or wireless (e.g., infrared, wireless, microwave, etc.) means from one website, computer, server, or data center. Computer readable storage media can be any available media that can be accessed by a computer or data storage devices, such as servers, data centers, etc., that contain an integration of one or more available media. Usable media may be magnetic media (e.g., floppy disks, hard disks, magnetic tape), optical media (e.g., DVD), or semiconductor media (e.g., solid state disk), among others.
The foregoing is merely exemplary embodiments of the present application and is not intended to limit the scope of the present application. In general, the various embodiments of the application may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the application is not limited thereto.
Embodiments of the present application may be implemented by a data processor of a mobile device executing computer program instructions, e.g. in a processor entity, either in hardware, or in a combination of software and hardware. The computer program instructions may be assembly instructions, instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages.
The block diagrams of any logic flow in the figures of this application may represent program steps, or may represent interconnected logic circuits, modules, and functions, or may represent a combination of program steps and logic circuits, modules, and functions. The computer program may be stored on a memory. The memory may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as, but not limited to, predetermined memory (ROM), random Access Memory (RAM), optical memory devices and systems (digital versatile disk DVD or CD disc), etc. The computer readable medium may include a non-transitory storage medium. The data processor may be of any type suitable to the local technical environment, such as, but not limited to, general purpose computers, special purpose computers, microprocessors, digital Signal Processors (DSPs), application Specific Integrated Circuits (ASICs), programmable logic devices (FGPAs), and processors based on a multi-core processor architecture.
It is to be understood that the above embodiments are merely illustrative of the exemplary embodiments employed to illustrate the principles of the present application, however, the present application is not limited thereto. Various modifications and improvements may be made by those skilled in the art without departing from the spirit and substance of the application, and are also considered to be within the scope of the application.