merging in (some of) Daniel's GPIO pin stuff
diff --git a/bbb_cape/src/bbb/byte_reader.h b/bbb_cape/src/bbb/byte_reader.h
index 952433d..80bb208 100644
--- a/bbb_cape/src/bbb/byte_reader.h
+++ b/bbb_cape/src/bbb/byte_reader.h
@@ -20,6 +20,6 @@
                             const ::aos::time::Time &timeout_time) = 0;
 };
 
-} // namespace bbb
+}  // namespace bbb
 
-#endif // BBB_BYTE_READER_H_
+#endif  // BBB_BYTE_READER_H_
diff --git a/bbb_cape/src/bbb/packet_finder.h b/bbb_cape/src/bbb/packet_finder.h
index 3ed0cea..9b74583 100644
--- a/bbb_cape/src/bbb/packet_finder.h
+++ b/bbb_cape/src/bbb/packet_finder.h
@@ -3,7 +3,6 @@
 
 #include <stdint.h>
 #include <string.h>
-#include <sys/types.h>
 
 #include "aos/common/logging/logging.h"
 #include "aos/common/time.h"
@@ -40,7 +39,6 @@
  private:
   typedef ByteReader::AlignedChar AlignedChar;
 
- protected:
   // Reads bytes until there are 4 zeros and then fills up buf_.
   // Returns true if it finds one or false if it gets an I/O error first or the
   // packet is invalid in some way.
diff --git a/bbb_cape/src/bbb/uart_reader.cc b/bbb_cape/src/bbb/uart_reader.cc
index 680e450..cebe127 100644
--- a/bbb_cape/src/bbb/uart_reader.cc
+++ b/bbb_cape/src/bbb/uart_reader.cc
@@ -3,8 +3,6 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <linux/serial.h>
-#include <sys/select.h>
-#include <termio.h>
 #include <unistd.h>
 
 #include "aos/common/logging/logging.h"
diff --git a/bbb_cape/src/bbb/uart_reader_main.cc b/bbb_cape/src/bbb/uart_reader_main.cc
index f8aefbd..46c8a8e 100644
--- a/bbb_cape/src/bbb/uart_reader_main.cc
+++ b/bbb_cape/src/bbb/uart_reader_main.cc
@@ -4,7 +4,7 @@
 #include "aos/atom_code/init.h"
 #include "aos/common/logging/logging_impl.h"
 #include "aos/common/time.h"
-#include "bbb/gpo.h"
+
 #include "bbb/uart_reader.h"
 #include "bbb/packet_finder.h"
 #include "bbb/data_struct.h"
@@ -12,18 +12,13 @@
 int main() {
   ::aos::Init();
 
-  ::bbb::Gpo reset_pin(1, 6);
-
   ::bbb::UartReader reader(750000);
   ::bbb::PacketFinder receiver(&reader, DATA_STRUCT_SEND_SIZE - 4);
 
   while (true) {
     if (!receiver.ReadPacket(::aos::time::Time::Now() +
                              ::aos::time::Time::InSeconds(1.5))) {
-      LOG(WARNING, "Could not read a packet. (Resetting board...)\n");
-      reset_pin.Set(true);
-      ::aos::time::SleepFor(::aos::time::Time::InSeconds(1));
-      reset_pin.Set(false);
+      LOG(WARNING, "Could not read a packet.\n");
       continue;
     }
 
diff --git a/bbb_cape/src/flasher/0001-fixed-the-page-by-page-erase-logic.patch b/bbb_cape/src/flasher/0001-fixed-the-page-by-page-erase-logic.patch
index 57fc87e..c119655 100644
--- a/bbb_cape/src/flasher/0001-fixed-the-page-by-page-erase-logic.patch
+++ b/bbb_cape/src/flasher/0001-fixed-the-page-by-page-erase-logic.patch
@@ -16,7 +16,7 @@
 @@ -430,14 +430,14 @@ char stm32_erase_memory(const stm32_t *stm, uint8_t spage, uint8_t pages) {
  		uint8_t pg_byte;
   		uint8_t cs = 0;
-
+  
 -		pg_byte = pages >> 8;
 -		stm32_send_byte(stm, pg_byte); // Number of pages to be erased, two bytes, MSB first
 +		pg_byte = (pages - 1) >> 8;
@@ -26,12 +26,12 @@
 +		pg_byte = (pages - 1) & 0xFF;
  		stm32_send_byte(stm, pg_byte);
  		cs ^= pg_byte;
-
+  
 - 		for (pg_num = 0; pg_num <= pages; pg_num++) {
 +		for (pg_num = spage; pg_num < spage + pages; pg_num++) {
   			pg_byte = pg_num >> 8;
   			cs ^= pg_byte;
   			stm32_send_byte(stm, pg_byte);
---
+-- 
 1.7.10.4