{"id":50,"date":"2004-04-15T23:33:08","date_gmt":"2004-04-16T07:33:08","guid":{"rendered":"\/?p=50"},"modified":"2004-04-15T23:33:08","modified_gmt":"2004-04-16T07:33:08","slug":"who-wants-to-kick-an-ass","status":"publish","type":"post","link":"https:\/\/tim.cexx.org\/?p=50","title":{"rendered":"Who wants to kick an ass?"},"content":{"rendered":"<p>I do, I do! After spending weeks intermittently puzzling over sporadic, but semi-deterministic odd behaviors on the chip I was hacking firmware for at work (you know, like <u>return<\/u> instructions that didn&#8217;t <u>return<\/u>), and throwing in &quot;good-luck <a href=\"http:\/\/www.catb.org\/~esr\/jargon\/html\/N\/no-op.html\" title=\"Because rabbits' feet scorch at 40MHz\">NOP<\/a>s&quot; until mysterious problems just as mysteriously went away (and hoping they didn&#8217;t return), I go and manage to dig up an <a href=\"http:\/\/ww1.microchip.com\/downloads\/en\/DeviceDoc\/80129g.pdf\" title=\"Why, oh why, didn't I take the Motorola pill?\">errata sheet<\/a> and find the following: <\/p>\n<p><tt>Certain code sequence and placement may cause<br \/>\nthe corruption of a few bits in the instruction fetch<br \/>\nwhen the part is used above 4 MHz. A corrupted<br \/>\ninstruction fetch will cause the part to execute an<br \/>\nimproper instruction and result in unpredictable<br \/>\noutputs.<\/p>\n<p>Microchip cannot predict which code sequences<br \/>\nand placement will cause this failure. If this failure<br \/>\nmechanism exists in your system, it should be<br \/>\nevident during statistically significant preproduction<br \/>\ntesting (minimum suggested sample<br \/>\nsize 100 units) of your particular code sequence and placement.<\/tt><\/p>\n<p>Yeah, that&#8217;s nice and helpful. <sub>Umm&#8230;we have *2* units.<\/sub> (How do products like this make it out the door?) Anyway, if my travels ever take me near Microchip Systems HQ, I am planning a free seminar on <a href=\"https:\/\/tim.cexx.org\/images\/shoepolish.jpg\" title=\"Certain sequences of shoe placement may result in severe discomfort\">embedded systems<\/a>. (Umm&#8230;Title will be &#8216;Innovative boot-up procedures&#8217;)<\/p>\n<p>\nQOTD: &#8220;I recently saw a distraught young lady weeping beside her car. &#8220;Do you<br \/>\nneed some help?&#8221; I asked. She replied, &#8220;I knew I should have replaced the battery to this remote door unlocker. Now I can&#8217;t get into my car. Do you think they (pointing to a distant convenient store) would have a battery to fit this?&#8221; &#8220;Hmmm, I dunno. Do you have an alarm too?&#8221; I asked. &#8220;No, just this remote thingy,&#8221; she answered, handing it and the car keys to me. As I took the key and manually unlocked the door, I replied, &#8220;Why don&#8217;t you drive over there and check about the batteries&#8211;it&#8217;s a long walk.&#8221;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I do, I do! After spending weeks intermittently puzzling over sporadic, but semi-deterministic odd behaviors on the chip I was hacking firmware for at work (you know, like return instructions that didn&#8217;t return), and throwing in &quot;good-luck NOPs&quot; until mysterious problems just as mysteriously went away (and hoping they didn&#8217;t return), I go and manage [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_FSMCFIC_featured_image_caption":"","_FSMCFIC_featured_image_nocaption":"","_FSMCFIC_featured_image_hide":"","iawp_total_views":7,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-50","post","type-post","status-publish","format-standard","hentry","category-general"],"_links":{"self":[{"href":"https:\/\/tim.cexx.org\/index.php?rest_route=\/wp\/v2\/posts\/50","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tim.cexx.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tim.cexx.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tim.cexx.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tim.cexx.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=50"}],"version-history":[{"count":0,"href":"https:\/\/tim.cexx.org\/index.php?rest_route=\/wp\/v2\/posts\/50\/revisions"}],"wp:attachment":[{"href":"https:\/\/tim.cexx.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=50"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tim.cexx.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=50"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tim.cexx.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=50"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}