??????????????????????????????б???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????y???????UNIX????ptrace???á????????????????????????????????????????????????????????????????????????????????棬????????????????????????????????ó?????????????????????????????????????????????????????????????????????????????????????????????????????????????μ????????????????????ο?????????????????????????????й?????????????????????????????????????????δ????Щ??????????????????????????????????????????????????????
??????????????????????????????????????Щ????

???????

? ?????stub??

???????????????????????????????????Щ??????飬??????????????е????????????????????????????

???????????????????
?????????????????????????????????????????????????????Э????????

?????????????????????????
????????????????????????????????飬???????????????????????????????????????????????????????????

???????????????????????
?????????????????????????????????????????????????????Щ???????????????????????????????????????????????????????洢????????????????????????????Щ????????????

??????????й?????????????????????????????????
??????????????????????????????????????????????????????y??????????????????????????п???????????????????????

???????????????????????????
??2????????????????????????????????????????????????????????????????????????????????ɡ????????????????GNU GDB??????????

???????????????????????????????????????Э????????饗?????????豸???????????????????????д????????й?????????????????????????????????????????????е????????????????????????????debug trap????????????????????X86??INT 3?????????Щ???????????????????????????????????е???????????????檔??????????????Щ???????"???"????????????????ROM??????ROM monitor????ò???????о?????????????????????Alpha??Sparc??PowerPC????LINUX???????kgdb????????????????????

????????????????????????ó??????????????????????????????????????????????????????????飬?????????host???????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????exception handler?????????ж??????????в?????????????飬?????????????????????????????????????????????????????????????????????????????????????????????????????????ó???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ж???????????????е????????????????????????????????????????????????????檔

?? ???????On Chip Debugging????Embedded PowerPC Background Debug Mode

??????????????????????????????飬??????????????????????????????????????????£???????????????У????????????????????????????????????????????????????????洢??????????????????????????????????????????????????????????????????????????????·?????????????????????????????????????????????microcode monitor?????????????????????????Щ?????????????????????????????????Motorola CPU16??CPU32??Coldfire??е?BDM??Background Debug Mode????Motorola PowerPC 5xx??8xx??е?EPBDM??Embedded PowerPC Background Debug Mode????IBM??TI??JTAG??Joint Test Action Debug??IEEE???????????OnCE??MPSD??????????MPC860??EPBDM?????????????????

EPBDM???????????????????????????????ж???????????????????????????????debug enable register?????????Щ?ж?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????load/store ??????????棬???棨cache?????洢????????MMU????????????????????????????????????DPDR?????mtspr??mfspr?????????????????????rfi(return from interrupt)??????????????????????????????С?

??????????????????OCD??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????貹????????????????????????????飬???????????о????????????д????ROM??RAM??????????

???????????????MPC860??LINUX??????????OCD???????OS ??????Щ???????

?????LINUX??????????????zImage?????????????ROM????????????????ROM?????λ?????????????RAM?????????????????????????????С????????????????????ROM?е?????????????????????????????????????????????????????????MPC860??EPBDM?????????Ρ?

MPC860???????X86??INT 3??????????????????????????????????????????????????????????????????????????????е???????С???????????????????????????????÷????????????"??"???

LINUX????????????????LINUX????????????????????????????????????????????б??????????????????????ó??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Translation Lookaside Buffer????????????????LINUX???TLB?Ч?????????????????????е????????λ?????????????????????ó?????????????????????????????MPC860???ù??????Harvard architecture??????????????????????????????????κ?????????????????????????????????????????????????????TLB?????????????TLB?Ч?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????豸????????????????????????????????????????????

??????

????????????????????1????????--???????--????????--???????С??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Щ??????????GDB??????????trace point??????????????Σ????????????е????????????????????agent??????????????????????????ü??????????????????????????????????????????????????????????????????????????????????????????????????????к????м???????????????????????????????????????????????????????????????????????????м??????????????????У????????????????????????????????????????????????????????????????μ????????????????????????????????????????????飬????????????????д??3K?????????????????????????????????洢????????????????С?????????????????????????????????????????????????????????????????????????????з?????

?????????????ζ??????--???????--???--?????????????????????profiling???????trace?????????Σ??????????????????????????Щ??????ε???д???????????????????????????????????????????????????????????????涼??????о????RISC???????????????????????"??"????????????о??????????????У?о??????????????????????????prefetch??????????????????У?????????????????????????????????????????????????????У?????????????????????????????????????????????

?е????????????????????????????з?????У????е????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????????????????????????????????????д?????gprof??profiling??????????????????????????????????????????д???????????о?????????????????????????????????????????????????????????????????????????????????????????????????intrusive??????????????????

??????????????????????????д???????????????????·??????????????????"??????"??discontinuities???????????????????????????????????????????????????????????????????????????????????????????????÷??????????????С??

???????????????????????????????·????????????????????????????????????????????????????????????????????Щ???????????????????????????????????1998???????Nexus 5001 Forum???????????????????????ò????????????????????????????????????????????????Global Embedded Processor Debug Interface Standard Consortium???????????????????????Э????Nexus??????24???????λ????????????Motorola??Infineon Technologies????????ETAS??HP??????????????????????????????????????????????????????????????????????????????????????????y???

??????

???????????п??????????????????顣?????????????????????????????????????????????????????????????????? jxiong@ict.ac.cn?????????