{"id":172,"date":"2019-04-07T09:41:23","date_gmt":"2019-04-07T14:41:23","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s19-teamaa\/?p=172"},"modified":"2019-04-13T22:09:42","modified_gmt":"2019-04-14T03:09:42","slug":"status-report-04-06-cmackint","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s19-teamaa\/2019\/04\/07\/status-report-04-06-cmackint\/","title":{"rendered":"Status Report 04-06 (cmackint)"},"content":{"rendered":"<p>I removed many unnecessary features from the firewall system. Now it simply permits adding to a single firewall blacklist by CAN ID: No multiple firewalls with different priorities.<\/p>\n<p>The UART command line implementation hit a road block. The UART driver&#8217;s receive function uses DMA (direct memory access) and receive idle interrupts. This had a small bug: the transmit function triggered an idle interrupt after each transmission despite the idle flag not actually being set. This was fixed by trivially checking the idle flag.<\/p>\n<p>The UART driver works as expected; I&#8217;ll be implementing the command line on Sunday. The DMA receive call is blocking, thus command handling must not happen in the receive task. I&#8217;ll probably update the driver receive to be non-blocking by adding a per-message synchronization rather than global synchronization, as Stan implemented with the driver transmit function last week. Alternatively, I could simply add the received commands to a queue for a processing task to handle.<\/p>\n<p>There&#8217;s currently an issue with the CAN driver; once resolved I&#8217;ll run integration tests on the firewall for a sanity check.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I removed many unnecessary features from the firewall system. Now it simply permits adding to a single firewall blacklist by CAN ID: No multiple firewalls with different priorities. The UART command line implementation hit a road block. The UART driver&#8217;s receive function uses DMA (direct memory access) and receive idle interrupts. This had a small &hellip; <a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s19-teamaa\/2019\/04\/07\/status-report-04-06-cmackint\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Status Report 04-06 (cmackint)<\/span><\/a><\/p>\n","protected":false},"author":72,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s19-teamaa\/wp-json\/wp\/v2\/posts\/172"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s19-teamaa\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s19-teamaa\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s19-teamaa\/wp-json\/wp\/v2\/users\/72"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s19-teamaa\/wp-json\/wp\/v2\/comments?post=172"}],"version-history":[{"count":1,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s19-teamaa\/wp-json\/wp\/v2\/posts\/172\/revisions"}],"predecessor-version":[{"id":173,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s19-teamaa\/wp-json\/wp\/v2\/posts\/172\/revisions\/173"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s19-teamaa\/wp-json\/wp\/v2\/media?parent=172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s19-teamaa\/wp-json\/wp\/v2\/categories?post=172"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s19-teamaa\/wp-json\/wp\/v2\/tags?post=172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}