MTK SystemError Type analysis is the content to be introduced in this article, mainly to understandMTK SystemProblems in,SystemThere are two typical types of errors: CPU-triggeredSystemErrors. The other is triggered by software.SystemError.
1. CPU trigger detected) System Error
Undefined Instruction Exception command error not defined)
It means that ARM cannot parse how the current command is executed. In other words, the current command does not belong to the ARM instruction set. But you may wonder how this error may happen? Unless there are bugs in analyticdb, RVCT, and other compilers, such errors cannot be found in the compilation phase. Do these compilers eat rice or even do they not know the commands in the ARM instruction set? Therefore, this error is not a code issue. This error may occur when the program runs and runs in the data area. There are many causes for the flight, such as the function pointer issue, or the partial variable overflow causes the function return address in the stack to be broken.
Software Interrupt Exception
Let's take a look at the interesting stuff. MTK writes the following when introducing the SWI exception type:
- The software interrupt instruction (SWI) is used to enter Supervisor mode,
- usually to request a particular supervisor function.
Could you tell me that SWI is exception from the above section? I can't bear it, or even get crazy. After reading the above explanation, I cannot understand the slightest relationship between SWI and exception. SWI can be interpreted as a software-triggered interrupt, but it is not used in MTK systems. So if the Soft Interrupt is triggered, the program must have been running. At this point, we finally understand why SWI is also an exception.
Pre-fetch Abort Exception
A prefetch instruction error occurs when the CPU reads the instruction from RAM or ROM, the provided address is an invalid address other than RAM and ROM ). It is generally a function pointer issue, or a local variable overflow breaks down the return address of the function in the stack, and so on.
Data Abort Exception
A data error occurs when you access data in RAM or ROM. The provided address is an invalid address other than RAM or ROM ). Generally, there is a problem with the Data Pointer.
2. system errors detected by software triggers
Assert Error
The Assert statement embedded by the programmer in the Code, inMTKThere are three types of code: ASSERT), EXT_ASSERT), EXT_ASSERT_DUMP)
Fatal Error
It can be understood as the Assert statement written in the KAL layer. This is some Assert statements that MTK System engineers have buried at the KAL layer. The KAL layer is the Adaptation Layer of the system. Therefore, problems in this layer are generally related to system exceptions. For example, the ctrl buffer is insufficient and the external queue is full.
System Lockup
Write in the documentSystemPending. The younger brother is not talented. debug has not been able to encounter such exceptions for so many years.
Summary:MTK SystemThe Error Type analysis is complete. I hope this article will help you!