<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="bbPress/1.0.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>LeafLabs Garden &#187; Topic: Request for feedback: high-priority bugs/features</title>
		<link>http://forums.leaflabs.com/topic.php?id=861</link>
		<description>A place to share, learn, and grow...</description>
		<language>en-US</language>
		<pubDate>Fri, 22 Jan 2016 00:04:53 +0000</pubDate>
		<generator>http://bbpress.org/?v=1.0.2</generator>
		<textInput>
			<title><![CDATA[Search]]></title>
			<description><![CDATA[Search all topics from these forums.]]></description>
			<name>q</name>
			<link>http://forums.leaflabs.com/search.php</link>
		</textInput>
		<atom:link href="http://forums.leaflabs.com/rss.php?topic=861" rel="self" type="application/rss+xml" />

		<item>
			<title>dipspb on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=3#post-21863</link>
			<pubDate>Sat, 05 Jan 2013 13:14:26 +0000</pubDate>
			<dc:creator>dipspb</dc:creator>
			<guid isPermaLink="false">21863@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Pull req sent to &#60;a href=&#34;https://github.com/leaflabs/libmaple/pull/60&#34; rel=&#34;nofollow&#34;&#62;https://github.com/leaflabs/libmaple/pull/60&#60;/a&#62;&#60;br /&#62;
Fix for unresolved _exit reference with Summon/Linaro GCC ARM toolchain.&#60;/p&#62;
&#60;p&#62;regards,&#60;br /&#62;
Dmitry
&#60;/p&#62;</description>
		</item>
		<item>
			<title>iainism on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=3#post-10082</link>
			<pubDate>Wed, 04 Apr 2012 16:29:38 +0000</pubDate>
			<dc:creator>iainism</dc:creator>
			<guid isPermaLink="false">10082@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;+1 to CAN support.&#60;/p&#62;
&#60;p&#62;I have access to Vector CANoe through my work (along with other neat toys, such as a Tektronix MSO 5054 with the AUTO and COMP modules installed) if testing is required, and I will shortly have an Olimexino-STM32 (ordered today).  &#60;/p&#62;
&#60;p&#62;I should also mention that with regard to the above offer of testing assistance, my coding experience is usually a few levels higher up the OSI stack than working on hardware drivers, and recently my experience has mostly been in MATLAB.  I'm happy to do things, but I may ask a few 'stupid' questions along the way!&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;I do not know how each operating system (Windows XP, Vista, 7, Linux, Mac OS X) would treat a 'file' on the USB-mass-storage-device which keeps returning data. Is its length as big as it can be (e.g. 4GB), or does it constantly change?&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;My thought on reading the above is that this isn't so different to how various files in /var/log behave in a *nix system; so for output from the device, as long as the 'file' is always correctly closed after an update something similar to tail should keep track - shouldn't it?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ala42 on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=3#post-10070</link>
			<pubDate>Mon, 02 Apr 2012 18:23:26 +0000</pubDate>
			<dc:creator>ala42</dc:creator>
			<guid isPermaLink="false">10070@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;The Makefile in the support/ld/libcs3_stm32_src directory is buggy. The high-density devices get the same vector table as the medium-density devices as a define for the assembler based vector table is missing. Currently these vectors are not defined for high-density devices:&#60;br /&#62;
	.long	__irq_tim8_brk&#60;br /&#62;
	.long	__irq_tim8_up&#60;br /&#62;
	.long	__irq_tim8_trg_com&#60;br /&#62;
	.long	__irq_tim8_cc&#60;br /&#62;
	.long	__irq_adc3&#60;br /&#62;
	.long	__irq_fsmc&#60;br /&#62;
	.long	__irq_sdio&#60;br /&#62;
	.long	__irq_tim5&#60;br /&#62;
	.long	__irq_spi3&#60;br /&#62;
	.long	__irq_uart4&#60;br /&#62;
	.long	__irq_uart5&#60;br /&#62;
	.long	__irq_tim6&#60;br /&#62;
	.long	__irq_tim7&#60;br /&#62;
	.long	__irq_dma2_channel1&#60;br /&#62;
	.long	__irq_dma2_channel2&#60;br /&#62;
	.long	__irq_dma2_channel3&#60;br /&#62;
	.long	__irq_dma2_channel4_5&#60;/p&#62;
&#60;p&#62;To fix the bug in support/ld/libcs3_stm32_src/Makefile add&#60;br /&#62;
high-density: ASFLAGS := -DSTM32_HIGH_DENSITY&#60;br /&#62;
below&#60;br /&#62;
high-density: CFLAGS := -DSTM32_HIGH_DENSITY&#60;/p&#62;
&#60;p&#62;Rebuild and check that the resulting libcs3_stm32_high_density.a file is larger than libcs3_stm32_med_density.a. Currently the size is identical.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>poslathian on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=3#post-7736</link>
			<pubDate>Tue, 17 Jan 2012 16:55:04 +0000</pubDate>
			<dc:creator>poslathian</dc:creator>
			<guid isPermaLink="false">7736@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I do like the mass storage device, and it would solve the driver signing issue. However, the bigger problem is that the USB interface is being provided by the same device you are reprogramming, so when you reprogram you tear down the USB interface with it. &#60;/p&#62;
&#60;p&#62;We experimented early on with having a dual USB configuration, DFU and Serial at the same time. It could just as easily have been Mass Storage and Serial at the same time. The problem was that Mac and Windows handled compound USB configurations in a mutually exclusive way, requiring us to write a custom windows driver to get that to work. We obviously did not go that direction. &#60;/p&#62;
&#60;p&#62;The plan for future products is to bite the bullet and drop in a second MCU to provide an always on serial interface which is used for both communication and for bootloading. Similar to what arduino UNO does. However, we strongly encourage people to keep playing with the bootloader scheme on the current products. We would love to see a mass storage setup working and would definitely be interested in seeing the community start to fool around with the USB configuration in general. All sorts of fun possibilities there.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=3#post-7701</link>
			<pubDate>Mon, 16 Jan 2012 21:31:22 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">7701@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I do not need such a complex bootloader.&#60;br /&#62;
I'll need to take about two bootloaders, let's call the thing you are describing the 'add-on' bootloader, and the one manufactures into the chip, the STM32 bootloader.&#60;br /&#62;
I would be satisfied with a reliable way to upload an ordinary program, and then fallback to the STM32's bootloader for loading/changing the add-on bootloader.&#60;/p&#62;
&#60;p&#62;I have requirements which you have not mentioned.&#60;br /&#62;
I need an easy to use API (on the board) to be able to print messages or send binary data streams from the board, and exchange binary data streams with it, while it is running my programs.&#60;/p&#62;
&#60;p&#62;One of the areas of the current bootloader which has often caused problems is that it dynamically changes the type of USB device that it enumerates to the host PC. Windows, at least, gets upset. So it seems desirable to remain the same type of USB device. Hence an interest in widely used serial devices like CDC. Also, I believe some boards work over USB CDC already, for example SUN's sunspot, so there is some evidence that it can be done.&#60;/p&#62;
&#60;p&#62;Anyway, because of my other needs, I am interested in how a USB-mass-storage-device would satisfy my requirements to exchange binary data streams with the board while my program is running. To avoid repeating the problems caused be dynamically changing the type of USB device, I will assume it will always look like a USB-mass-storage-device.&#60;/p&#62;
&#60;p&#62;I can imagine a scheme where some other file name on the USB-mass-storage-device represents the output stream from the board, and another an input stream to the board. But I don't have much confidence that it would work.&#60;/p&#62;
&#60;p&#62;I do not know how each operating system (Windows XP, Vista, 7, Linux, Mac OS X) would treat a 'file' on the USB-mass-storage-device which keeps returning data. Is its length as big as it can be (e.g. 4GB), or does it constantly change?&#60;br /&#62;
What would it do to a file which allows the OS to keep writing data, maybe even beyond the size of the device?&#60;br /&#62;
I also don't know what would happen if the USB-mass-storage-device blocks and doesn't return any data for a long period of time.&#60;br /&#62;
I also don't know if all of the platforms would support exchanging bytes with the USB-mass-storage-device to support the sort of simple, byte orientated data exchange protocols that beginners use. &#60;/p&#62;
&#60;p&#62;I do believe that OS's treat a USB-mass-storage-device as a block device, expecting to read or write entire blocks, so that might need to be investigated.&#60;br /&#62;
I could imagine some of those OS's rely on timeouts to ensure things work, so that would need to be checked out too.&#60;/p&#62;
&#60;p&#62;Have you thought how this might work?&#60;/p&#62;
&#60;p&#62;Edit: Is the idea to dynamically change between two different USB devices, one being the USB-mass-storage-device, and the other a USB device which satisfies my other requirements for binary data streams? My impression is OS's might be even more sensitive to a block device like a USB-mass-storage-device disconnecting. I get messages from my Mac, and from Windows if I pull a USB-mass-storage-device out without 'closing it'.&#60;/p&#62;
&#60;p&#62;(Full disclosure: I am not a member of LeafLabs staff)
&#60;/p&#62;</description>
		</item>
		<item>
			<title>LarryP on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=3#post-7691</link>
			<pubDate>Mon, 16 Jan 2012 17:30:52 +0000</pubDate>
			<dc:creator>LarryP</dc:creator>
			<guid isPermaLink="false">7691@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Greetings all,&#60;/p&#62;
&#60;p&#62;I'd like to toss out yet another blue-skyish idea for making the leafLab's bootloader work more reliably, need fewer (ideally no) custom drivers, and be more nearly unbrickable.  This may be somewhat of a ramble, setting up the context; so please either ignore me or bear with me.  &#60;/p&#62;
&#60;p&#62;Some assertions, please take 'em with a grain of salt: &#60;/p&#62;
&#60;p&#62;A.1: Although the OpenMoko software used in leafLab's bootloader is open and reasonably clean, it doesn't appear (to me, at least) to be well (read consistently) implemented across Windows (esp. Win7 and future), iOS, and Linux (to say nothing of upcoming Android) host operating systems.  Driver and signing issues (for the different O/Ss that leafLabs would like to support)continue to be a hassle for users and a distraction for leafLabs' developers&#60;/p&#62;
&#60;p&#62;A.2  The situation described in A.1 isn't likely to change soon, and leafLabs and their customers have little prospect of fomenting significant amounts of such change.  Thus, the leafLabs' bootloader needs to change, because the rest of the ecosystem won't do so any time soon.&#60;/p&#62;
&#60;p&#62;A.3  Complete backward compatibility would be nice, but IMHO may have to be sacrificed in order to truly put a stake through the heart of the driver issue.  However, keeping as much backward compatibility as possible is desirable, and it may be possible to make the host-side software auto-detect the bootloader version on the target, and then react correctly and automatically.&#60;/p&#62;
&#60;p&#62;OK, some digression about the bootloader, the USB spec and what the bootloader needs to do.  &#60;/p&#62;
&#60;p&#62;At core, the bootloader needs to: &#60;/p&#62;
&#60;p&#62;* Check the image in flash for integrity.  (Optionally check the bootloader itself for integrity, but happens if it fails is less clear.)&#60;/p&#62;
&#60;p&#62;* If the onboard flash image is OK and there's no indication from the host that a new image is ready for download, jump to the image already in flash.&#60;/p&#62;
&#60;p&#62;*If the host indicates there's a download image available from the host (or the user has forced perpetual bootloader mode), wait patiently for the host to send an image to load into memory.  Accept the input, verify it (checksum); write it into either flash or RAM, and jump to the corresponding entry point.&#60;/p&#62;
&#60;p&#62;----&#60;/p&#62;
&#60;p&#62;In the USB spec (at least Rev 2.0 and up), there are a number of pre-defined generic/class drivers.  The inclusion of these class drivers together with the mandate (if I recall correctly) that &#60;em&#62;class drivers must be included for USB certification &#60;/em&#62; suggests that making use of USB class drivers, in lieu of a custom driver on the host side (that must be distributed, signed {or hacked around}, installed, documented and maintained, would be a good thing.  It sounds like the scheme leafLabs is working on may make use of the CDC class driver. However, we may be able to do better by making use of another class driver, as well; please see below.&#60;/p&#62;
&#60;p&#62;Side note: The presence of (the HID) class driver is one key reason why many getting-started-with USB projects use the HID class driver, that comes with virtually every O/S I've seen with USB host support.  &#60;/p&#62;
&#60;p&#62;Interestingly -- and IMHO relevant to the bootloader issue -- another defined-in-the-USB-spec class is &#60;em&#62;the Mass Storage class,&#60;/em&#62; and I believe all the O/Ss of interest support this fully, correctly and without needing any mucking with custom drivers.  More importantly, all those host O/Ss need to do this -- &#60;em&#62;and will need to continue to do this&#60;/em&#62; -- in order to read from/write to the many, many different USB thumb drives, MP3-players, and digital cameras people want to use with their PCs.  For instance, my camera presents to my PC as a flash-drive (that somehow fills itself up with directories of .jpg files) -- without ever asking me about drivers, signing, or any such hassle.&#60;/p&#62;
&#60;p&#62;So here is a rough outline of my bootloader-variation proposal:  &#60;/p&#62;
&#60;p&#62;Either replace the perpetual bootloader mode (on the target side) with code that makes the Maple device present its flash memory (except for the bootloader itself {??})temporarily as a USB mass storage device, or (better for backward compatibility) add some new means (button press at the right time, once in perpetual bootloader mode?) to transition the on-maple bootloader into &#34;Mass Storage&#34; mode.  On the host side, either the Maple GUI or the O/S itself can now see the Maple's flash memory as a newly-installed small flash drive.  Thus, the Maple's flash memory can be backed up and/or re-written by copying a suitable image file (with the right size and checksum) to/from the &#34;Maple flash drive.&#34;  &#60;/p&#62;
&#60;p&#62;One of the other Cortex M3 suppliers (NXP, in their one of their LPC13xx versions), implements this functionality in an extra chunk of non-erasable, on-chip memory.  I haven't seen info on any STMicro Arm/Cortex variant that has such a USB-mass-storage-firmware-in-ROM, as does the one NXP model, so complete un-brickability is probably not possible without some external hardware.  However, if this revised bootloader, when placed into Mass-storage mode, were designed to accept only two file names, e.g. userImage.whatever and bootLoader.whatever (and the latter only with sufficient extra steps to try to ensure atomic update, absent a power failure during the update.)  Then we'd have a general-purpose way to both get new images into a maple's Flash memory or copy an existing flash image back out of a maple (e.g. to help debug the really hard bugs) in the vast majority of cases.  Doing so would also provides a means (albeit slightly risky) of updating the bootloader itself in the field.  &#60;/p&#62;
&#60;p&#62;From what I can tell, completely restoring a firmware-bricked but otherwise unharmed STM32xxx requires connecting up one of the serial ports (namely access to the right Maple pins) to something that can send it a flash-image update compatible with STM's built-in bootloader protocol/format and baud rate.  One PC-based tool for this is the &#34;STM32 ST-LINK Utility.&#34;  For most PCs, that now lack a serial port, doing this requires a USB-to-serial (at the correct signal levels) converter.   FTDI.com makes these, and there are a number of clones or work-alikes available, including (if I recall correctly) Arduino sketches that server as USB-to-serial converters.  FYI, I've had good luck with the &#34;USB BUB1&#34; from &#60;a href=&#34;http://shop.moderndevice.com/products/usb-bub&#34; rel=&#34;nofollow&#34;&#62;http://shop.moderndevice.com/products/usb-bub&#60;/a&#62; and consider it a good investment for when things go seriously weird.  &#60;/p&#62;
&#60;p&#62;FTI, here's a table of the various class drivers in the USB spec: &#60;a href=&#34;http://en.wikipedia.org/wiki/Universal_serial_bus#Device_classes&#34; rel=&#34;nofollow&#34;&#62;http://en.wikipedia.org/wiki/Universal_serial_bus#Device_classes&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;For those of you who've read this far, thanks for your time and attention!  I welcome your comments and criticisms, but please keep it professional and as cordial as possible.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>bubulindo on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=3#post-7652</link>
			<pubDate>Sun, 15 Jan 2012 03:23:53 +0000</pubDate>
			<dc:creator>bubulindo</dc:creator>
			<guid isPermaLink="false">7652@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Or the 32kHz crystal for the onboard real time clock. :)
&#60;/p&#62;</description>
		</item>
		<item>
			<title>kiwidude on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=3#post-7651</link>
			<pubDate>Sun, 15 Jan 2012 03:07:12 +0000</pubDate>
			<dc:creator>kiwidude</dc:creator>
			<guid isPermaLink="false">7651@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;It would be really cool to be able to port working sketches from AVR Arduino to leafmaple. Unfortunately nothing much compiles. The PROGMEM things I can take care of, but the basic libraries like SPI, Wire and Ethernet are non-negotiable. ;-) They have to work 100% the same. Improve - yes, change - no.&#60;/p&#62;
&#60;p&#62;Given that the capabilities of an STM ARM are so much bigger than those of a 328P AVR why don't you just slam a 50 cent EEPROM on the boards? (Chipkit made that mistake too.)
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=3#post-6233</link>
			<pubDate>Thu, 08 Sep 2011 20:40:15 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">6233@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;mbolivar&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;We definitely agree that this is an important feature. It's easily implementable in my proposed scheme. I'll make sure to add it in such a way that it's easy to override from user code (i.e., without modifying the libmaple source).
&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;Thank you.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>mbolivar on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=3#post-6217</link>
			<pubDate>Wed, 07 Sep 2011 17:16:33 +0000</pubDate>
			<dc:creator>mbolivar</dc:creator>
			<guid isPermaLink="false">6217@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;gbulmer,&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;
I'd still prefer a way to for my code to intervene before your 'autoreset-password-checker' and catch the DTR in my code.
&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;We definitely agree that this is an important feature.  It's easily implementable in my proposed scheme.  I'll make sure to add it in such a way that it's easy to override from user code (i.e., without modifying the libmaple source).&#60;/p&#62;
&#60;p&#62;supermac -- Thank you for the feedback on CAN.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>supermac on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=3#post-6192</link>
			<pubDate>Sat, 03 Sep 2011 21:30:53 +0000</pubDate>
			<dc:creator>supermac</dc:creator>
			<guid isPermaLink="false">6192@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I would like to see native CAN support libraries.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=2#post-6177</link>
			<pubDate>Thu, 01 Sep 2011 17:17:15 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">6177@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I'd still prefer a way to for my code to intervene before your 'autoreset-password-checker' and catch the DTR in my code.&#60;/p&#62;
&#60;p&#62;Rather than you guys come up with some ingenious way to make it highly unlikely that a false DTR-driven-reset happens, I'd like to get the DTR and decide for myself what to do.&#60;/p&#62;
&#60;p&#62;I think we agree, DTR is the only cross-platform out-of-band signal USB serial signal.&#60;br /&#62;
IMHO, that makes it far to useful to waste by tying it irrevocably into the USB reset mechanism.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>mbolivar on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=2#post-6014</link>
			<pubDate>Fri, 19 Aug 2011 16:46:06 +0000</pubDate>
			<dc:creator>mbolivar</dc:creator>
			<guid isPermaLink="false">6014@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;hey all,&#60;/p&#62;
&#60;p&#62;just a bump to let you know we haven't forgotten about this; i've been chipping away at this periodically, and here's the status.&#60;/p&#62;
&#60;p&#62;usb-touchups now has a pair of files, usb_cdcacm.h/usb_cdcacm.c which control all the VCOM functionality; usb.h and usb.c are now just pretty thin skins on top of ST's usb_lib/.&#60;/p&#62;
&#60;p&#62;for the near future, i've decided against replicating all the code in usb_lib/; there's too many other things on my plate to make this worthwhile at the moment.  i managed to get rid of the things i hated most (the biggest win was replacing usb_regs.h with a new usb_reg_map.h), so i'm satisfied for now. &#60;/p&#62;
&#60;p&#62;anyway, in terms of user-visible changes, i was thinking about the autoreset scheme, and wanted to try a new way to go about it.  the basic idea is to interpret DTR/RTS changes as a sequence of bits.  at compile time, we decide a particular sequence to use as a &#34;password&#34;.  to reset the board, just &#34;send&#34; this password over DTR/RTS.&#60;/p&#62;
&#60;p&#62;the idea is still preliminary, and i'd like to take this time to solicit some feedback from any interested parties.  more details on my idea and its current implementation are available in this commit:&#60;/p&#62;
&#60;p&#62;&#60;a href=&#34;https://github.com/mbolivar/libmaple/commit/6c5bc6eb40868f997d67ca3aadd707dc3844b6c0&#34; rel=&#34;nofollow&#34;&#62;https://github.com/mbolivar/libmaple/commit/6c5bc6eb40868f997d67ca3aadd707dc3844b6c0&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;edit:  the reason why i want to do it this way is because it seems likely that it will be very reliable, and also for the improved separation of concerns between autoreset and data transmission.  this should let us avoid certain classes of bugs entirely, e.g. the current (libmaple 0.0.11) situation, where you can't autoreset the board if SerialUSB has any unread bytes, since the RX endpoint will just NAK attempts to send the '0x1eaf' sequence.&#60;/p&#62;
&#60;p&#62;as long as the DTR/RTS password is long enough and implausible enough, it should be unlikely to occur in common use, and besides which, we can always revise the docs to make it clear that libmaple claims DTR and RTS for its own purposes.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=2#post-5386</link>
			<pubDate>Thu, 23 Jun 2011 10:43:03 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">5386@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;mbolivar - Thank you. I think you've given is a helpful explanation because I think I understand your view a bit better.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>mbolivar on "Request for feedback: high-priority bugs/features"</title>
			<link>http://forums.leaflabs.com/topic.php?id=861&amp;page=2#post-5379</link>
			<pubDate>Thu, 23 Jun 2011 01:32:25 +0000</pubDate>
			<dc:creator>mbolivar</dc:creator>
			<guid isPermaLink="false">5379@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;regarding (1), i agree that it's not a show-stopper.  i also agree that (2) is the most relevant in terms of easing user pain.  however, i think you're underestimating the value of (3) as a prerequisite for fixing the problems in (2).&#60;/p&#62;
&#60;p&#62;i don't know if you've had a look at the contents of libmaple/usb/usb_lib/.  frankly, it's a mess.  many important things are accomplished by side-effecting global variables that are scattered about the source code.  the documentation looks like it was written in order to fulfill a requirement, rather than educate the users about how things work.&#60;/p&#62;
&#60;p&#62;as you might imagine, using such a thing correctly is not the easiest thing in the world.&#60;/p&#62;
&#60;p&#62;it will be easier, and get results faster, to rip out all of that extra complexity before proceeding further.  the fact that doing so is a good investment in the future of the library is just a secondary benefit.&#60;/p&#62;
&#60;p&#62;to be perfectly clear: i am explicitly not trying to make an end-all-be-all USB library.  i _am_ trying to do the stupidest thing that could possibly work.  saying &#34;not general enough&#34; in my previous post was a mistake on my part.  i meant that the public usb.h interface wasn't too general; ST's code is of course general-purpose, but using it has all the problems described above.&#60;/p&#62;
&#60;p&#62;as you know, we really want a serial-only bootloader.  i truly believe that it will be faster to first put together a better USB interface, then write such a bootloader on top of that, rather than try to put something together using the code we have now.&#60;/p&#62;
&#60;p&#62;when i talk about moving over to libmaple's conventions, i'm not trying to start a bikeshed argument.  we write libmaple because it makes it easier to develop for the STM32, not out of NIH or tabs vs. spaces.&#60;/p&#62;
&#60;p&#62;we're an open source company; of course we are happy to build upon work shared by others.  we'd be happy to use LUFA or whatever other open source library, if it gets the job done.  however, porting LUFA would take way more time than the path we're taking now.
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
