FreeBSD Bugzilla – Attachment 181352 Details for
Bug 218241
[PATCH] devel/bossa: Add 1200bps hack w/ -a flag
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
svn(1) diff of devel/bossa
bossa-1.7.0_1.diff (text/plain), 5.58 KB, created by
Kyle Evans
on 2017-03-31 15:37:26 UTC
(
hide
)
Description:
svn(1) diff of devel/bossa
Filename:
MIME Type:
Creator:
Kyle Evans
Created:
2017-03-31 15:37:26 UTC
Size:
5.58 KB
patch
obsolete
>Index: Makefile >=================================================================== >--- Makefile (revision 437263) >+++ Makefile (working copy) >@@ -2,6 +2,7 @@ > > PORTNAME= bossa > PORTVERSION= 1.7.0 >+PORTREVISION= 1 > CATEGORIES= devel > > MAINTAINER= bsdports@kyle-evans.net >Index: files/patch-src_PosixSerialPort.cpp >=================================================================== >--- files/patch-src_PosixSerialPort.cpp (nonexistent) >+++ files/patch-src_PosixSerialPort.cpp (working copy) >@@ -0,0 +1,47 @@ >+--- src/PosixSerialPort.cpp.orig 2017-03-31 15:31:35 UTC >++++ src/PosixSerialPort.cpp >+@@ -85,6 +85,9 @@ PosixSerialPort::open(int baud, >+ >+ switch (baud) >+ { >++ case 1200: >++ speed = B1200; >++ break; >+ case 9600: >+ speed = B9600; >+ break; >+@@ -297,6 +300,34 @@ PosixSerialPort::timeout(int millisecs) >+ { >+ _timeout = millisecs; >+ return true; >++} >++ >++void >++PosixSerialPort::setDTR(bool dtr) >++{ >++ if (_devfd == -1) >++ return; >++ >++ int iFlags = TIOCM_DTR; >++ >++ if (dtr) >++ ioctl(_devfd, TIOCMBIS, &iFlags); >++ else >++ ioctl(_devfd, TIOCMBIC, &iFlags); >++} >++ >++void >++PosixSerialPort::setRTS(bool rts) >++{ >++ if (_devfd == -1) >++ return; >++ >++ int iFlags = TIOCM_RTS; >++ >++ if (rts) >++ ioctl(_devfd, TIOCMBIS, &iFlags); >++ else >++ ioctl(_devfd, TIOCMBIC, &iFlags); >+ } >+ >+ void >Index: files/patch-src_PosixSerialPort.h >=================================================================== >--- files/patch-src_PosixSerialPort.h (nonexistent) >+++ files/patch-src_PosixSerialPort.h (working copy) >@@ -0,0 +1,11 @@ >+--- src/PosixSerialPort.h.orig 2017-03-31 15:31:35 UTC >++++ src/PosixSerialPort.h >+@@ -52,6 +52,8 @@ class PosixSerialPort : public SerialPort (public) >+ >+ bool timeout(int millisecs); >+ void flush(); >++ void setDTR(bool dtr); >++ void setRTS(bool rts); >+ void setAutoFlush(bool autoflush); >+ >+ private: >Index: files/patch-src_SerialPort.h >=================================================================== >--- files/patch-src_SerialPort.h (nonexistent) >+++ files/patch-src_SerialPort.h (working copy) >@@ -0,0 +1,11 @@ >+--- src/SerialPort.h.orig 2017-03-31 15:31:35 UTC >++++ src/SerialPort.h >+@@ -68,6 +68,8 @@ class SerialPort (public) >+ >+ virtual bool timeout(int millisecs) = 0; >+ virtual void flush() = 0; >++ virtual void setDTR(bool dtr) = 0; >++ virtual void setRTS(bool rts) = 0; >+ >+ virtual std::string name() const { return _name; } >+ >Index: files/patch-src_WinSerialPort.cpp >=================================================================== >--- files/patch-src_WinSerialPort.cpp (nonexistent) >+++ files/patch-src_WinSerialPort.cpp (working copy) >@@ -0,0 +1,18 @@ >+--- src/WinSerialPort.cpp.orig 2017-03-31 15:31:35 UTC >++++ src/WinSerialPort.cpp >+@@ -251,3 +251,15 @@ WinSerialPort::flush() >+ { >+ Sleep(1); >+ } >++ >++void >++WinSerialPort::setDTR(bool dtr) >++{ >++ Sleep(1); >++} >++ >++void >++WinSerialPort::setRTS(bool rts) >++{ >++ Sleep(1); >++} >Index: files/patch-src_WinSerialPort.h >=================================================================== >--- files/patch-src_WinSerialPort.h (nonexistent) >+++ files/patch-src_WinSerialPort.h (working copy) >@@ -0,0 +1,11 @@ >+--- src/WinSerialPort.h.orig 2017-03-31 15:31:35 UTC >++++ src/WinSerialPort.h >+@@ -55,6 +55,8 @@ class WinSerialPort : public SerialPort (public) >+ >+ bool timeout(int millisecs); >+ void flush(); >++ void setDTR(bool dtr); >++ void setRTS(bool rts); >+ >+ private: >+ HANDLE _handle; >Index: files/patch-src_bossac.cpp >=================================================================== >--- files/patch-src_bossac.cpp (nonexistent) >+++ files/patch-src_bossac.cpp (working copy) >@@ -0,0 +1,69 @@ >+--- src/bossac.cpp.orig 2017-03-31 15:31:35 UTC >++++ src/bossac.cpp >+@@ -64,6 +64,7 @@ class BossaConfig (public) >+ bool help; >+ bool forceUsb; >+ string forceUsbArg; >++ bool arduinoErase; >+ >+ int readArg; >+ string portArg; >+@@ -89,6 +90,7 @@ BossaConfig::BossaConfig() >+ info = false; >+ help = false; >+ forceUsb = false; >++ arduinoErase = false; >+ >+ readArg = 0; >+ bootArg = 1; >+@@ -189,6 +191,11 @@ static Option opts[] = >+ 'R', "reset", &config.reset, >+ { ArgNone }, >+ "reset CPU (if supported)" >++ }, >++ { >++ 'a', "arduino_erase", &config.arduinoErase, >++ { ArgNone }, >++ "erase and reset via Arduino 1200 baud hack (cannot be used with port autodetection)" >+ } >+ }; >+ >+@@ -257,6 +264,12 @@ main(int argc, char* argv[]) >+ return help(argv[0]); >+ } >+ >++ if (config.arduinoErase && !config.port) >++ { >++ fprintf(stderr, "%s: port must be specified for Arduino 1200bps erase hack\n", argv[0]); >++ return help(argv[0]); >++ } >++ >+ if (config.read || config.write || config.verify) >+ { >+ if (args == argc) >+@@ -311,6 +324,25 @@ main(int argc, char* argv[]) >+ fprintf(stderr, "Invalid USB value: %s\n", config.forceUsbArg.c_str()); >+ return 1; >+ } >++ } >++ >++ if (config.arduinoErase) >++ { >++ SerialPort::Ptr port; >++ if (config.forceUsb) >++ port = portFactory.create(config.portArg, isUsb); >++ else >++ port = portFactory.create(config.portArg); >++ >++ if(!port->open(1200)) >++ { >++ fprintf(stderr, "Failed to open port at 1200bps\n"); >++ return 1; >++ } >++ >++ port->setRTS(true); >++ port->setDTR(false); >++ port->close(); >+ } >+ >+ if (config.port)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
kevans
:
maintainer-approval+
Actions:
View
|
Diff
Attachments on
bug 218241
:
181331
| 181352