▁a ▁single ▁task ▁( or ▁small ▁range ▁of ▁tasks ), ▁and ▁the ▁platform ▁is ▁chosen ▁specifically ▁to ▁optimize ▁that ▁application . ▁Not ▁only ▁does ▁this ▁fact ▁make ▁life ▁t ough ▁for ▁embedded ▁system ▁developers , ▁it ▁also ▁makes ▁debugging ▁and ▁testing ▁of ▁these ▁systems ▁harder ▁as ▁well , ▁since ▁different ▁debugging ▁tools ▁are ▁needed ▁for ▁different ▁platforms . ▁ ▁Despite ▁the ▁challenge ▁of ▁heter ogene ity ▁mentioned ▁above , ▁some ▁debug gers ▁have ▁been ▁developed ▁commer cially ▁as ▁well ▁as ▁research ▁pro tot ypes . ▁Ex amples ▁of ▁commercial ▁solutions ▁come ▁from ▁Green ▁Hills ▁Software ▁ ▁and ▁Micro ch ip ' s ▁M PL AB - IC D ▁( for ▁in - circ uit ▁debugger ). ▁Two ▁examples ▁of ▁research ▁prototype ▁tools ▁are ▁A vek sha ▁and ▁F lock lab . ▁They ▁all ▁le verage ▁a ▁functionality ▁available ▁on ▁low - cost ▁embedded ▁process ors , ▁an ▁On - Ch ip ▁Debug ▁Module ▁( O CD M ), ▁whose ▁signals ▁are ▁exposed ▁through ▁a ▁standard ▁J TAG ▁interface . ▁They ▁are ▁benchmark ed ▁based ▁on ▁how ▁much ▁change ▁to ▁the ▁application ▁is ▁needed ▁and ▁the ▁rate ▁of ▁events ▁that ▁they ▁can ▁keep ▁up ▁with . ▁ ▁In ▁addition ▁to ▁the ▁typical ▁task ▁of ▁ident ifying ▁bugs ▁in ▁the ▁system , ▁embedded ▁system ▁debugging ▁also ▁see ks ▁to ▁collect ▁information ▁about ▁the ▁operating ▁states ▁of ▁the ▁system ▁that ▁may ▁then ▁be ▁used ▁to ▁analyze ▁the ▁system : ▁to ▁find ▁ways ▁to ▁boost ▁its ▁performance ▁or ▁to ▁optimize ▁other ▁important ▁characteristics ▁( e . g