Embedded system is a hotspot in the development of computer software nowadays. As a crucial embedded development tool, the embedded system debugger is usually used to debug and test embedded software. A embedded system debugger consists of a cross debugger and a debugger agent, which trait lies on the separation of running environments between the cross debugger and the debugging target, and the dependence on the debugging agent in the debug session. With the development of the embedded hardware technology and the improvement of embedded application and embedded system complexity, the requirement of scale and complexity of embedded software is increasing, the quality of embedded software and development circle play decisive influence on the final quality and marketing time of the products, the efficiency of embedded software debugging tools becomes people's attention focus.This paper particularly introduces the research and design process of ARM hardware emulation debugger based on DCC and JTAG. Except the basic debugging function of downloading, breaking point, single step, continuous running, memory reading and writing, register operation and so on, this hardware emulation debugger has quick reading and writing target memory by enabling DCC channel. Because memory reading and writing are the most common function in debugging, it improves the debugging efficiency greatly. Firstly, this paper introduces the embedded system development and embedded debugger in the round. The second is the particular introduction of JTAG theory with wide-application JTAG technology and ARM in current embedded debugger. The third is the thorough analysis of debugging principle in ARM chip. At last the design, realization and test process of LambdaICE is expounded.This hardware emulator has two great features in design process: firstly, the use of DCC channel to transfer data in memory reading and writing with mass data, in this way, we can greatly improve the speed of debugger's memory reading and writing; Secondly, in protection and restoring of context (the kernel register), the use of batch data storage instruction, so we can greatly quicken the run time of stop and restoring run. |