I am starting to get concerned... Guys, if you take care of the code quality, why OpenOCD internals is a mess? Why noone cleaned it up so far? Take a look at UrJTAG as good example of your approach but it was implemented in reality :-)
I have started working on LibSWD when there was no MPSSE driver, this is why I use ft2232. I had two choices back then - first cleanup the code, second make swd working. I have chosen second option as more important for me, its working, maybe its not perfect yet but it can be tested, now its time to clean up the code, and improve efficiency after that. The work on SWD can be tested, co I sent the commits. You want me to create layouts for obsolete driver first. You want me to write mpsse driver first. This will not put SWD into OpenOCD today. It will make people wait even longer for those changes. Code will still remain dirty. I dont agree that Bitbang is a bad idea - this is a must have for an interface. This is implemented in UrJTAG and this is why it took me month or two to make things work, not year to first create basic functionality in OpenOCD. This allows virtually all protocols implementation at the TCL level, this allows to be more indepenent of hardcoding stuff. USB is a bottle neck, how do you want to overcome this? USB will always bring delay, but we can agree with this simple fact, or have no support for USB devices that work this way at all. Commits may be too granular, but you asked and still asking for this. If you want to change anything, you are free to do so - commits are on the gerrit :-) If you dont agree on this design right now, what would happen when I start changing more important things? You will halt all commits and force your way of thinking? These commits are not only important because they bring some new functionality, but also show how you react on a change... There were only one or two remarks about the code, other comments are about editorial stuff. I think Spen not fully understand the problem. There are three variables with the current design: interface, layout, transport. You have one configuration file for an interface-layout pair (the transport was JTAG by default). I made a solution that makes it possible to reuse existing configurations and introduce third variable - transport. Still you can use old configuration for JTAG transport. But you need to create new configuation for a new interface, because this IS a new interface, with new layout and new transport. How do you want to initialize interface in a different manner using old interface and old layout? Spen, how do you want to use old config to initialize new layout and new transport? Please suggest better solution and say why it is better than mine. You can prove it with the code. To see what is the problem, change layout to ft2232_swd on a JTAG interface, and see that it want to work on a nonexistent data. Initialization flow needs to be fixed. What is the initialization flow? Where are configuration information stored? Any contex? One place? Bunch of global variables? How to backtrace the function call? What do functions work on? Void? Best regards, Tomek -- CeDeROM, SQ7MHZ, http://www.tomek.cedro.info ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnmore_122712 _______________________________________________ OpenOCD-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openocd-devel
